aboutsummaryrefslogtreecommitdiff
path: root/ext/fts3/fts3_snippet.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2019-02-28 13:41:35 +0000
committerdan <dan@noemail.net>2019-02-28 13:41:35 +0000
commit95fdb63b7f70d339a602f456b87cb207006af2f5 (patch)
tree3a7c709850abc57f9691e8a9951edc499fd0f6f0 /ext/fts3/fts3_snippet.c
parent45616c7f7539fcb60547ae95b06dd4fd421ff453 (diff)
downloadsqlite-95fdb63b7f70d339a602f456b87cb207006af2f5.tar.gz
sqlite-95fdb63b7f70d339a602f456b87cb207006af2f5.zip
Avoid an assert() failure and an undefined left-shift operation in the fts3 snippet() function that could occur if the database was corrupt.
FossilOrigin-Name: d5250db6322103326f0d5782ba049996d9ce8784f9e53a3112fb6f09f888f1c3
Diffstat (limited to 'ext/fts3/fts3_snippet.c')
-rw-r--r--ext/fts3/fts3_snippet.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ext/fts3/fts3_snippet.c b/ext/fts3/fts3_snippet.c
index 58a71d2dd..1a04b7192 100644
--- a/ext/fts3/fts3_snippet.c
+++ b/ext/fts3/fts3_snippet.c
@@ -429,7 +429,7 @@ static void fts3SnippetDetails(
char *pCsr = pPhrase->pTail;
int iCsr = pPhrase->iTail;
- while( iCsr<(iStart+pIter->nSnippet) ){
+ while( iCsr<(iStart+pIter->nSnippet) && iCsr>=iStart ){
int j;
u64 mPhrase = (u64)1 << i;
u64 mPos = (u64)1 << (iCsr - iStart);