From: drh Date: Thu, 28 May 2009 14:34:49 +0000 (+0000) Subject: Fix a NULL pointer dereference following an OOM error in the column name X-Git-Tag: version-3.6.15~75 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2c220455b91feef421df28bdcac2efe6d25d6a75;p=thirdparty%2Fsqlite.git Fix a NULL pointer dereference following an OOM error in the column name resolver. (CVS 6685) FossilOrigin-Name: 3b46142532934d17aa136c2e56e58e7828df0f54 --- diff --git a/manifest b/manifest index 209ba7d0ba..40c453eaf3 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Make\ssure\sthe\scolumn\sname\sresolver\sdoes\snot\stry\sto\sduplicate\sExpr.u.zToken\nwhen\sthe\sExpr.u.iValue\sunion\smember\sis\sthe\selement\sbeing\sused.\s(CVS\s6684) -D 2009-05-28T12:49:53 +C Fix\sa\sNULL\spointer\sdereference\sfollowing\san\sOOM\serror\sin\sthe\scolumn\sname\nresolver.\s(CVS\s6685) +D 2009-05-28T14:34:50 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in 583e87706abc3026960ed759aff6371faf84c211 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -156,7 +156,7 @@ F src/pragma.c d4a6fd74fd1dba0f22c8930791f7fbbe80d2ef26 F src/prepare.c f46d1a029760edee5447e27164fb3ae10e2a6839 F src/printf.c 3f4dca207a88258d37af5a7a03e800a825fe6456 F src/random.c 676b9d7ac820fe81e6fb2394ac8c10cff7f38628 -F src/resolve.c 3e2df0a2f41a425c4260e7ca932ebdc6cf8ff6b2 +F src/resolve.c fc6fdd01305518fd1462e1621213e63bd011a115 F src/rowset.c c64dafba1f9fd876836c8db8682966b9d197eb1f F src/select.c fd1737a667bab296f50049a841b3aba5ec89418e F src/shell.c 7eacd0bdaa887931f5ff205c9defc3e8df95a2dd @@ -731,7 +731,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e -P 5904af6e6df3effdaaa30e7cf96ee316fc09b28d -R 525bf44a2c83ebc207687f9de40c8b4c +P 376ecf0d87e4a2329f5861401f83ed9ceb35d528 +R bbce5972206d6f118dd6353677bfd682 U drh -Z 1bf7740e558a10c01f1b3c9c89c84c9a +Z f90523b52af270223148e00c0be5042d diff --git a/manifest.uuid b/manifest.uuid index 34fb5902f8..173ad89e90 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -376ecf0d87e4a2329f5861401f83ed9ceb35d528 \ No newline at end of file +3b46142532934d17aa136c2e56e58e7828df0f54 \ No newline at end of file diff --git a/src/resolve.c b/src/resolve.c index b536dcfe01..dc750b1e99 100644 --- a/src/resolve.c +++ b/src/resolve.c @@ -14,7 +14,7 @@ ** resolve all identifiers by associating them with a particular ** table and column. ** -** $Id: resolve.c,v 1.25 2009/05/28 12:49:53 drh Exp $ +** $Id: resolve.c,v 1.26 2009/05/28 14:34:50 drh Exp $ */ #include "sqliteInt.h" #include @@ -73,6 +73,7 @@ static void resolveAlias( pDup->iTable = pEList->a[iCol].iAlias; }else if( ExprHasProperty(pOrig, EP_IntValue) || pOrig->u.zToken==0 ){ pDup = sqlite3ExprDup(db, pOrig, 0); + if( pDup==0 ) return; }else{ char *zToken = pOrig->u.zToken; pOrig->u.zToken = 0;