From: drh Date: Thu, 19 May 2005 01:26:14 +0000 (+0000) Subject: Fix an array index that is out of bounds. Ticket #1251. (CVS 2462) X-Git-Tag: version-3.6.10~3696 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dd9f8b45ef63de1bdcdb462d9477e2bfe54a394f;p=thirdparty%2Fsqlite.git Fix an array index that is out of bounds. Ticket #1251. (CVS 2462) FossilOrigin-Name: bcf87e4d1681d6c2856e716aae0135c2b14989d8 --- diff --git a/manifest b/manifest index abd20d3e80..0c6b43ff30 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Provide\sa\scompile-time\sparameter\sto\sset\sthe\sdefault\sfile\screation\spermissions\nunder\sUnix.\s\sTicket\s#1247.\s(CVS\s2461) -D 2005-05-17T11:25:32 +C Fix\san\sarray\sindex\sthat\sis\sout\sof\sbounds.\s\sTicket\s#1251.\s(CVS\s2462) +D 2005-05-19T01:26:14 F Makefile.in 5c00d0037104de2a50ac7647a5f12769795957a3 F Makefile.linux-gcc 06be33b2a9ad4f005a5f42b22c4a19dab3cbb5c7 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 @@ -81,7 +81,7 @@ F src/vdbeInt.h 4afaae2f4adcab54ad2a40dabb2e689fba7b1561 F src/vdbeapi.c 87f363c9c6a32a403d22dda6d594d3548775a0d5 F src/vdbeaux.c b4d9b9a9d87254a279a88e3f91d0db048071c856 F src/vdbemem.c 4e853ce3151eaf7906150da85a1b3ce1fe5e8da8 -F src/where.c 836906aeb19f2da270ce760ebebc4ac5aa924c8d +F src/where.c f02baff03e2a9ed7bdc36b363b8e4024a94de919 F tclinstaller.tcl 046e3624671962dc50f0481d7c25b38ef803eb42 F test/all.test 7f0988442ab811dfa41793b5b550f5828ce316f3 F test/alter.test 9d6837a3d946b73df692b7cef2a7644d2e2f6bc6 @@ -279,7 +279,7 @@ F www/tclsqlite.tcl 425be741b8ae664f55cb1ef2371aab0a75109cf9 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b F www/whentouse.tcl 528299b8316726dbcc5548e9aa0648c8b1bd055b -P 582cb77d72031f78b560f67222a0e6ce5e3ca3f2 -R f86563d37c0f4ff3d3482c5acc233171 +P bfa55bec3233eed899606c309773f441857605ae +R 6bd0eeb9bbf9503fb459ead1e3a1f2eb U drh -Z 51bafd4fe83db37b3595598eb6a48d4f +Z d79050c6ee7e2ea7fc2cb669622669c8 diff --git a/manifest.uuid b/manifest.uuid index af93ed64c6..2733ebeb51 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -bfa55bec3233eed899606c309773f441857605ae \ No newline at end of file +bcf87e4d1681d6c2856e716aae0135c2b14989d8 \ No newline at end of file diff --git a/src/where.c b/src/where.c index 48ad161a7c..3987d17aeb 100644 --- a/src/where.c +++ b/src/where.c @@ -16,7 +16,7 @@ ** so is applicable. Because this module is responsible for selecting ** indices, you might also think of this module as the "query optimizer". ** -** $Id: where.c,v 1.137 2005/04/22 02:38:38 drh Exp $ +** $Id: where.c,v 1.138 2005/05/19 01:26:14 drh Exp $ */ #include "sqliteInt.h" @@ -793,7 +793,7 @@ WhereInfo *sqlite3WhereBegin( && (pTerm->prereqRight & loopMask)==pTerm->prereqRight ){ int iColumn = pX->pLeft->iColumn; int k; - char idxaff = pIdx->pTable->aCol[iColumn].affinity; + char idxaff = iColumn>=0 ? pIdx->pTable->aCol[iColumn].affinity : 0; for(k=0; knColumn; k++){ /* If the collating sequences or affinities don't match, ** ignore this index. */