aboutsummaryrefslogtreecommitdiff
path: root/src/func.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/func.c')
-rw-r--r--src/func.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/func.c b/src/func.c
index 885725bc6..181032a5e 100644
--- a/src/func.c
+++ b/src/func.c
@@ -204,9 +204,11 @@ static void instrFunc(
if( typeHaystack==SQLITE_BLOB && typeNeedle==SQLITE_BLOB ){
zHaystack = sqlite3_value_blob(argv[0]);
zNeedle = sqlite3_value_blob(argv[1]);
- assert( zNeedle!=0 );
- assert( zHaystack!=0 || nHaystack==0 );
isText = 0;
+ /* The following condition may be true if the arguments passed to this
+ ** function are values returned by zeroblob() or similar and an OOM
+ ** occurs while expanding the blob value. */
+ if( zNeedle==0 || (nHaystack && zHaystack==0) ) return;
}else{
zHaystack = sqlite3_value_text(argv[0]);
zNeedle = sqlite3_value_text(argv[1]);