From: Victor Kirhenshtein Date: Tue, 16 Aug 2016 08:23:53 +0000 (+0300) Subject: fixed memory leak in Oracle driver X-Git-Tag: 2.1-M0~125 X-Git-Url: http://git.netxms.org/public/netxms.git/commitdiff_plain/6492e55945d5fb9d9eb3bec1657926602d1431c0 fixed memory leak in Oracle driver --- diff --git a/src/db/dbdrv/oracle/oracle.cpp b/src/db/dbdrv/oracle/oracle.cpp index 1c0be4a0e..73d2f8819 100644 --- a/src/db/dbdrv/oracle/oracle.cpp +++ b/src/db/dbdrv/oracle/oracle.cpp @@ -493,6 +493,7 @@ static void BindNormal(ORACLE_STATEMENT *stmt, int pos, int sqlType, int cType, break; case DB_CTYPE_INT64: // OCI prior to 11.2 cannot bind 64 bit integers sqlBuffer = malloc(sizeof(OCINumber)); + stmt->buffers->set(pos - 1, sqlBuffer); OCINumberFromInt(stmt->handleError, buffer, sizeof(INT64), OCI_NUMBER_SIGNED, (OCINumber *)sqlBuffer); OCIBindByPos(stmt->handleStmt, &handleBind, stmt->handleError, pos, sqlBuffer, sizeof(OCINumber), SQLT_VNU, NULL, NULL, NULL, 0, NULL, OCI_DEFAULT); @@ -501,6 +502,7 @@ static void BindNormal(ORACLE_STATEMENT *stmt, int pos, int sqlType, int cType, break; case DB_CTYPE_UINT64: // OCI prior to 11.2 cannot bind 64 bit integers sqlBuffer = malloc(sizeof(OCINumber)); + stmt->buffers->set(pos - 1, sqlBuffer); OCINumberFromInt(stmt->handleError, buffer, sizeof(INT64), OCI_NUMBER_UNSIGNED, (OCINumber *)sqlBuffer); OCIBindByPos(stmt->handleStmt, &handleBind, stmt->handleError, pos, sqlBuffer, sizeof(OCINumber), SQLT_VNU, NULL, NULL, NULL, 0, NULL, OCI_DEFAULT);