From 9ff3f3f77205d8a4318649609a0ea776c82e4a99 Mon Sep 17 00:00:00 2001 From: danielk1977 Date: Sat, 11 Oct 2008 17:51:38 +0000 Subject: [PATCH] When transfering an error message from a statement handle to the database handle so that it can be accessed by sqlite3_errmsg(), a malloc may fail. If this malloc fails, it is considered benign. (CVS 5806) FossilOrigin-Name: 311003aff85e6b6c47e854d33f46eee31da6f30c --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/vdbeaux.c | 4 +++- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/manifest b/manifest index 01aa6e34f9..ee6aed54b8 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Conditionally\somit\sprototypes\sin\spcache.h\swhen\sthe\scorresponding\sroutines\nare\snot\sused.\s\sTicket\s#3430.\s(CVS\s5805) -D 2008-10-11T17:42:29 +C When\stransfering\san\serror\smessage\sfrom\sa\sstatement\shandle\sto\sthe\sdatabase\shandle\sso\sthat\sit\scan\sbe\saccessed\sby\ssqlite3_errmsg(),\sa\smalloc\smay\sfail.\sIf\sthis\smalloc\sfails,\sit\sis\sconsidered\sbenign.\s(CVS\s5806) +D 2008-10-11T17:51:39 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 7fc26e087207e7a4a7723583dbd7997477af3b13 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -194,7 +194,7 @@ F src/vdbe.c b78adf571b9abac4092c641bec148832e8f26f34 F src/vdbe.h 41c99aaad9167c1b5431993db446de74b2f71fc3 F src/vdbeInt.h a20f479ec3bf41c61b0c2bd5176a9bad6b2a07ef F src/vdbeapi.c fd2c286cee63a146d5110c11c0aa2bf3a9ebe220 -F src/vdbeaux.c 20a7d109c95e32beee7891fba828c63e419af26c +F src/vdbeaux.c e007aa723a059b1e5357c15420eea84095de828a F src/vdbeblob.c b0dcebfafedcf9c0addc7901ad98f6f986c08935 F src/vdbefifo.c 20fda2a7c4c0bcee1b90eb7e545fefcdbf2e1de7 F src/vdbemem.c ead88713b852576e2a924bc4ae696964bfbaec0a @@ -648,7 +648,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e -P 63dd8be70d333c56171dfd254406abb1af685b0f -R 2e8a3aab50bc76e37d67dde55564ae76 -U drh -Z ec55c75de0e3851eb41128595a9d99a7 +P 977ae12c365846e1bc582fd17146151953b5ed68 +R 9c89f9db01f9afd53fe43920196dd01f +U danielk1977 +Z 7852ef6101c10f09690b75f08c78bd02 diff --git a/manifest.uuid b/manifest.uuid index a64aba6b5c..80d5f956e0 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -977ae12c365846e1bc582fd17146151953b5ed68 \ No newline at end of file +311003aff85e6b6c47e854d33f46eee31da6f30c \ No newline at end of file diff --git a/src/vdbeaux.c b/src/vdbeaux.c index 45ab6cfd86..15831daba9 100644 --- a/src/vdbeaux.c +++ b/src/vdbeaux.c @@ -14,7 +14,7 @@ ** to version 2.8.7, all this code was combined into the vdbe.c source file. ** But that file was getting too big so this subroutines were split out. ** -** $Id: vdbeaux.c,v 1.411 2008/09/19 18:32:27 danielk1977 Exp $ +** $Id: vdbeaux.c,v 1.412 2008/10/11 17:51:39 danielk1977 Exp $ */ #include "sqliteInt.h" #include @@ -1731,7 +1731,9 @@ int sqlite3VdbeReset(Vdbe *p){ */ if( p->pc>=0 ){ if( p->zErrMsg ){ + sqlite3BeginBenignMalloc(); sqlite3ValueSetStr(db->pErr,-1,p->zErrMsg,SQLITE_UTF8,SQLITE_TRANSIENT); + sqlite3EndBenignMalloc(); db->errCode = p->rc; sqlite3DbFree(db, p->zErrMsg); p->zErrMsg = 0; -- 2.47.2