Fix memory leaks in Oracle Client. The largest leaks come from the cursors being...
[mono.git] / mcs / class / System.Data.OracleClient / System.Data.OracleClient / OracleParameter.cs
index df17716097dbae6007a10a25bcc7dea4e652ee27..6f11d970f0d46c04f10686f54d92b13fa113a130 100644 (file)
@@ -821,8 +821,11 @@ namespace System.Data.OracleClient
                                        if (direction == ParameterDirection.Output || 
                                                direction == ParameterDirection.InputOutput || 
                                                direction == ParameterDirection.ReturnValue) {
-
-                                               cursor = IntPtr.Zero;
+                                               if (cursor != IntPtr.Zero) {
+                                                       OciCalls.OCIHandleFree (cursor,
+                                                               OciHandleType.Statement);
+                                                       cursor = IntPtr.Zero;
+                                               }
                                                OciCalls.OCIHandleAlloc (connection.Environment,
                                                        out cursor,
                                                        OciHandleType.Statement,