c8189c00cb
Fix regression tests and a use after realloc. ok jasper@
32 lines
1.1 KiB
Plaintext
32 lines
1.1 KiB
Plaintext
$OpenBSD: patch-agen5_defLoad_c,v 1.1 2006/12/09 18:28:53 kili Exp $
|
|
|
|
# Fix use after realloc.
|
|
|
|
--- agen5/defLoad.c.orig Sun Sep 24 04:58:59 2006
|
|
+++ agen5/defLoad.c Sun Nov 19 18:30:20 2006
|
|
@@ -418,6 +418,7 @@ readDefines( void )
|
|
*/
|
|
if (sizeLeft == 0) {
|
|
tScanCtx* p;
|
|
+ char *oldPzData;
|
|
|
|
/*
|
|
* IF it is a regular file, then we are done
|
|
@@ -430,6 +431,7 @@ readDefines( void )
|
|
* Try to reallocate our input buffer.
|
|
*/
|
|
dataSize += (sizeLeft = 0x1000);
|
|
+ oldPzData = pBaseCtx->pzData;
|
|
p = (tScanCtx*)AGREALOC( (void*)pBaseCtx,
|
|
dataSize+4+sizeof( *pBaseCtx ),
|
|
"expanded file buffer" );
|
|
@@ -442,7 +444,7 @@ readDefines( void )
|
|
if (p != pBaseCtx) {
|
|
p->pzScan = \
|
|
p->pzData = (char*)(p+1);
|
|
- pzData = p->pzData + (pzData - pBaseCtx->pzData);
|
|
+ pzData = p->pzData + (pzData - oldPzData);
|
|
pBaseCtx = p;
|
|
}
|
|
}
|