Fix an OOM-recovery problem in the DELETE code generator.

FossilOrigin-Name: dc7be158b82ab9156d0fcdf3394f881eac4d23c3
This commit is contained in:
drh 2013-11-16 23:03:06 +00:00
parent 9612947260
commit 52a82e6966
3 changed files with 11 additions and 8 deletions

View File

@ -1,5 +1,5 @@
C Combine\sthe\srowid\sand\sWITHOUT\sROWID\spaths\sfor\sDELETE\sinto\sa\ssingle\spath.
D 2013-11-16T22:48:52.173
C Fix\san\sOOM-recovery\sproblem\sin\sthe\sDELETE\scode\sgenerator.
D 2013-11-16T23:03:06.762
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 8a07bebafbfda0eb67728f4bd15a36201662d1a1
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@ -174,7 +174,7 @@ F src/callback.c f99a8957ba2adf369645fac0db09ad8adcf1caa2
F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
F src/ctime.c ea4b7f3623a0fcb1146e7f245d7410033e86859c
F src/date.c 593c744b2623971e45affd0bde347631bdfa4625
F src/delete.c 1bcc9d7f2e48cf9043a44bdbd333c38c2ef6676a
F src/delete.c af69db684408d06a446e2ba2d050399773f91b9b
F src/expr.c 1a295d8b0a2ba08919ad9300ebf7b67988ff4030
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
F src/fkey.c 78364daed38e26269c53ddb94c515bceac1063c6
@ -1140,7 +1140,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
P e4d220a381388f900a95d1b656a82f14c837f92e
R d0df7aac2a46f76fbd08b30c4f269d2a
P c4734b881a64a9d21d03a14e901785797577fbd8
R 10d8931262d0ae5f1928488f5d08f78e
U drh
Z 2d947a1a8ff0ceb82e3a6fad03406bbd
Z 412c615fb9ef758b4ed11a541f1ecdcc

View File

@ -1 +1 @@
c4734b881a64a9d21d03a14e901785797577fbd8
dc7be158b82ab9156d0fcdf3394f881eac4d23c3

View File

@ -433,7 +433,10 @@ void sqlite3DeleteFrom(
*/
nKey = nPk; /* OP_Found will use an unpacked key */
aToOpen = sqlite3DbMallocRaw(db, nIdx+2);
if( aToOpen==0 ) goto delete_from_cleanup;
if( aToOpen==0 ){
sqlite3WhereEnd(pWInfo);
goto delete_from_cleanup;
}
memset(aToOpen, 1, nIdx+1);
aToOpen[nIdx+1] = 0;
if( aiCurOnePass[0]>=0 ) aToOpen[aiCurOnePass[0]-iTabCur] = 0;