Skip to content

Commit 78afddb

Browse files
committed
Fixed memory corruption while using queryStream() / ResultSet interface with LOB fetchAsString/fetchAsBuffer
1 parent cee1065 commit 78afddb

File tree

5 files changed

+315
-193
lines changed

5 files changed

+315
-193
lines changed

src/dpi/include/dpiStmt.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,7 @@ typedef int (*bindcbtype) (void *ctx, DPI_SZ_TYPE nRows, unsigned int bndpos,
153153
unsigned char *piecep );
154154

155155
// Application (Driver) level callback funciton prototype
156-
typedef int (*definecbtype) ( void *ctx, unsigned long definePos,
157-
unsigned long iter, unsigned long *prevIter,
156+
typedef int (*definecbtype) ( void *ctx, unsigned long iter,
158157
void **bufpp, void **alenp, void **indpp,
159158
unsigned short **rcodepp );
160159

@@ -177,8 +176,8 @@ typedef struct
177176
typedef struct
178177
{
179178
definecbtype callbackfn; /* Application specific callback */
180-
void *data; /* data for application specific callback */
181-
unsigned int definePos; /* 0-based define column position */
179+
void *data; /* Define data for this column */
180+
void *extData; /* Extended data for this colum if any or NULL */
182181
unsigned long prevIter; /* earlier iter, used to detect iter changing */
183182
} DpiDefineCallbackCtx;
184183

src/dpi/src/dpiStmtImpl.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -752,8 +752,8 @@ sb4 StmtImpl::defineCallback ( void *ctxp, OCIDefine *definep, ub4 iter,
752752

753753
DpiDefineCallbackCtx *ctx = (DpiDefineCallbackCtx *)ctxp;
754754

755-
cbret = ctx->callbackfn ( ctx->data, ctx->definePos, iter, &(ctx->prevIter),
756-
bufpp, (void **) alenpp, (void**)indpp, rcodepp );
755+
cbret = ctx->callbackfn ( ctx, iter, bufpp, (void **) alenpp, (void**)indpp,
756+
rcodepp );
757757
*piecep = OCI_NEXT_PIECE; // always ask for next piece
758758

759759
if ( cbret )

0 commit comments

Comments
 (0)