From 2fa34d35c4e9a0ae637ded5e07fca69bc85a9204 Mon Sep 17 00:00:00 2001 From: drh Date: Wed, 15 Jul 2009 16:30:50 +0000 Subject: [PATCH] Remove an assert() from vdbeaux.c that might not be true if the database file is corrupt. (CVS 6895) FossilOrigin-Name: a42dc51e3bd258d5a357e557251fb2642708ceac --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/vdbeaux.c | 5 ++--- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/manifest b/manifest index 4b6fae2ac2..c013d56e25 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Added\sthe\sSQLITE_TESTCTRL_RESERVE\soption\sto\ssqlite3_test_control().\nSimplifications\sto\sbtree.c\sto\sfacilitate\sstructural\scoverage\stesting.\s(CVS\s6894) -D 2009-07-15T11:26:44 +C Remove\san\sassert()\sfrom\svdbeaux.c\sthat\smight\snot\sbe\strue\sif\sthe\sdatabase\nfile\sis\scorrupt.\s(CVS\s6895) +D 2009-07-15T16:30:50 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in df9359da7a726ccb67a45db905c5447d5c00c6ef F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -208,7 +208,7 @@ F src/vdbe.c b6fadd91f509fbcb9108f1d1a5e0985735fb315d F src/vdbe.h 35a648bc3279a120da24f34d9a25213ec15daf8a F src/vdbeInt.h 831c254a6eef237ef4664c8381a0137586567007 F src/vdbeapi.c 0ab8ada7260b32031ca97f338caecf0812460624 -F src/vdbeaux.c 1c3b0698073ddeab7bedc588b13e3fc441346b9e +F src/vdbeaux.c 5c2ad56759d606f7fcdca7ced0390c9ea8bb5f7f F src/vdbeblob.c a3f3e0e877fc64ea50165eec2855f5ada4477611 F src/vdbemem.c 1618f685d19b4bcc96e40b3c478487bafd2ae246 F src/vtab.c 00902f289521041712fb0293d0bf8688c7af8e48 @@ -740,7 +740,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl 672f81d693a03f80f5ae60bfefacd8a349e76746 -P 0c710c1be537127511d95b5b261c7bf26e1bc952 -R fa83113fa396566b08a5d7758ddff6ee +P cfbeda1b3126503e9631471ce4713e25b007859f +R d6155ec47b65f864575de01cbf0050eb U drh -Z 0062b335ba599f8c6b5dce4f0649d58c +Z 0b9e2d4ca82b865798da8f05eede3fbb diff --git a/manifest.uuid b/manifest.uuid index 5b39276930..52a997eedd 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -cfbeda1b3126503e9631471ce4713e25b007859f \ No newline at end of file +a42dc51e3bd258d5a357e557251fb2642708ceac \ No newline at end of file diff --git a/src/vdbeaux.c b/src/vdbeaux.c index 381906fa08..5d9e9506b4 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.474 2009/07/14 18:35:46 drh Exp $ +** $Id: vdbeaux.c,v 1.475 2009/07/15 16:30:50 drh Exp $ */ #include "sqliteInt.h" #include "vdbeInt.h" @@ -2420,11 +2420,10 @@ UnpackedRecord *sqlite3VdbeRecordUnpack( idx = getVarint32(aKey, szHdr); d = szHdr; u = 0; - while( idxnField ){ + while( idxnField && d<=nKey ){ u32 serial_type; idx += getVarint32(&aKey[idx], serial_type); - assert( d+sqlite3VdbeSerialTypeLen(serial_type) <= nKey ); pMem->enc = pKeyInfo->enc; pMem->db = pKeyInfo->db; pMem->flags = 0;