diff options
author | drh <drh@noemail.net> | 2017-01-25 04:41:34 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2017-01-25 04:41:34 +0000 |
commit | 210b0d0eb311e2fc2ece5c71a196811479f5f349 (patch) | |
tree | 21e167978fcfb6849b8c0334c92837236918958f /src/vdbeblob.c | |
parent | d1b2566b07744604a96593ea174f82e174eaa7f4 (diff) | |
download | sqlite-210b0d0eb311e2fc2ece5c71a196811479f5f349.tar.gz sqlite-210b0d0eb311e2fc2ece5c71a196811479f5f349.zip |
Ensure that sqlite3_blob_reopen() correctly handles short rows.
Proposed fix for ticket [e6e962d6b0f06f46e]. Further testing needed.
FossilOrigin-Name: 57d8dad35c2a9ab635e954dce7f3986ae1ca8ed2
Diffstat (limited to 'src/vdbeblob.c')
-rw-r--r-- | src/vdbeblob.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/vdbeblob.c b/src/vdbeblob.c index 1efd4c924..810f78860 100644 --- a/src/vdbeblob.c +++ b/src/vdbeblob.c @@ -77,7 +77,9 @@ static int blobSeekToRow(Incrblob *p, sqlite3_int64 iRow, char **pzErr){ } if( rc==SQLITE_ROW ){ VdbeCursor *pC = v->apCsr[0]; - u32 type = pC->aType[p->iCol]; + u32 type = pC->nHdrParsed>p->iCol ? pC->aType[p->iCol] : 0; + testcase( pC->nHdrParsed==p->iCol ); + testcase( pC->nHdrParsed==p->iCol+1 ); if( type<12 ){ zErr = sqlite3MPrintf(p->db, "cannot open value of type %s", type==0?"null": type==7?"real": "integer" |