diff options
author | larrybr <larrybr@noemail.net> | 2023-01-14 19:27:40 +0000 |
---|---|---|
committer | larrybr <larrybr@noemail.net> | 2023-01-14 19:27:40 +0000 |
commit | 3f7b9944b8a489d378f573c5dede24bc9087c066 (patch) | |
tree | d2722c8f20064b4beba85f90a69e541d3498d5af /ext/misc/sqlar.c | |
parent | 58abb646c55391ec2bd4fd8c8c53bb337eaba9cb (diff) | |
download | sqlite-3f7b9944b8a489d378f573c5dede24bc9087c066.tar.gz sqlite-3f7b9944b8a489d378f573c5dede24bc9087c066.zip |
Add OOM check, per tip at [forum:/forumpost/933479b2d5|forum post 933479b2d5]
FossilOrigin-Name: eda84dcffee6016fb3f8588d96c7ffb6275edd626b11f6fe12e81be90226c7d8
Diffstat (limited to 'ext/misc/sqlar.c')
-rw-r--r-- | ext/misc/sqlar.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/ext/misc/sqlar.c b/ext/misc/sqlar.c index 47cb68ff6..be079a546 100644 --- a/ext/misc/sqlar.c +++ b/ext/misc/sqlar.c @@ -91,7 +91,9 @@ static void sqlarUncompressFunc( }else{ const Bytef *pData= sqlite3_value_blob(argv[0]); Bytef *pOut = sqlite3_malloc(sz); - if( Z_OK!=uncompress(pOut, &sz, pData, nData) ){ + if( pOut==0 ){ + sqlite3_result_error_nomem(context); + }else if( Z_OK!=uncompress(pOut, &sz, pData, nData) ){ sqlite3_result_error(context, "error in uncompress()", -1); }else{ sqlite3_result_blob(context, pOut, sz, SQLITE_TRANSIENT); @@ -100,7 +102,6 @@ static void sqlarUncompressFunc( } } - #ifdef _WIN32 __declspec(dllexport) #endif |