mirror of
https://github.com/sqlite/sqlite.git
synced 2026-01-06 08:01:16 +03:00
Fix a memory leak that occurs after malloc fails. (CVS 2713)
FossilOrigin-Name: 85b931bf72dac88187e4531053a06abe25d6f462
This commit is contained in:
12
manifest
12
manifest
@@ -1,5 +1,5 @@
|
||||
C Fix\sthe\scrash.test\sscript\sto\saccomodate\srecent\schanges.\s(CVS\s2712)
|
||||
D 2005-09-17T17:05:19
|
||||
C Fix\sa\smemory\sleak\sthat\soccurs\safter\smalloc\sfails.\s(CVS\s2713)
|
||||
D 2005-09-17T17:58:22
|
||||
F Makefile.in 12784cdce5ffc8dfb707300c34e4f1eb3b8a14f1
|
||||
F Makefile.linux-gcc 06be33b2a9ad4f005a5f42b22c4a19dab3cbb5c7
|
||||
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
|
||||
@@ -84,7 +84,7 @@ F src/vdbe.c de007d59f036fcd1b89a7d4172aa0d028e8689eb
|
||||
F src/vdbe.h c8e105979fc7aaf5b8004e9621904e3bd096dfa2
|
||||
F src/vdbeInt.h 3dd2a29c7b0a55404c35f93caae81fb42f4cb70a
|
||||
F src/vdbeapi.c 85bbe1d0243a89655433d60711b4bd71979b59cd
|
||||
F src/vdbeaux.c b1db8b87935e7c864e6cdd9e39e07b6efdc2f576
|
||||
F src/vdbeaux.c 57a6ced8417bdc6f06c391d9c560ecbbed644ef3
|
||||
F src/vdbefifo.c 9efb94c8c3f4c979ebd0028219483f88e57584f5
|
||||
F src/vdbemem.c fea0744936008831daa17cdc75056c3ca1469690
|
||||
F src/where.c 1cc55c9aa142c7ef09b427f5fd0bf0488e365fc4
|
||||
@@ -309,7 +309,7 @@ F www/tclsqlite.tcl ddcf912ea48695603c8ed7efb29f0812ef8d1b49
|
||||
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
|
||||
F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b
|
||||
F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
|
||||
P c3bf17436bc1e264b4dbe255876a990a5a2b8b0c
|
||||
R d3e1eb1d7df7ceac8fbbdfcdff50095f
|
||||
P d594608ff37bbf1d6866adb337aa2fbcd517eada
|
||||
R c67b9e4d248af499dfd433c361712ddb
|
||||
U drh
|
||||
Z 21fd3b22e21e3f9446ccb64539193918
|
||||
Z 01b5ac88e3a5db9c8fdd344f074b13da
|
||||
|
||||
@@ -1 +1 @@
|
||||
d594608ff37bbf1d6866adb337aa2fbcd517eada
|
||||
85b931bf72dac88187e4531053a06abe25d6f462
|
||||
@@ -357,16 +357,23 @@ void sqlite3VdbeChangeP2(Vdbe *p, int addr, int val){
|
||||
*/
|
||||
static void freeP3(int p3type, void *p3){
|
||||
if( p3 ){
|
||||
if( p3type==P3_DYNAMIC || p3type==P3_KEYINFO ){
|
||||
sqliteFree(p3);
|
||||
}
|
||||
if( p3type==P3_VDBEFUNC ){
|
||||
VdbeFunc *pVdbeFunc = (VdbeFunc *)p3;
|
||||
sqlite3VdbeDeleteAuxData(pVdbeFunc, 0);
|
||||
sqliteFree(pVdbeFunc);
|
||||
}
|
||||
if( p3type==P3_MEM ){
|
||||
sqlite3ValueFree((sqlite3_value*)p3);
|
||||
switch( p3type ){
|
||||
case P3_DYNAMIC:
|
||||
case P3_KEYINFO:
|
||||
case P3_KEYINFO_HANDOFF: {
|
||||
sqliteFree(p3);
|
||||
break;
|
||||
}
|
||||
case P3_VDBEFUNC: {
|
||||
VdbeFunc *pVdbeFunc = (VdbeFunc *)p3;
|
||||
sqlite3VdbeDeleteAuxData(pVdbeFunc, 0);
|
||||
sqliteFree(pVdbeFunc);
|
||||
break;
|
||||
}
|
||||
case P3_MEM: {
|
||||
sqlite3ValueFree((sqlite3_value*)p3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user