aboutsummaryrefslogtreecommitdiff
path: root/ext/misc/sqlar.c
diff options
context:
space:
mode:
authorlarrybr <larrybr@noemail.net>2023-01-14 19:27:40 +0000
committerlarrybr <larrybr@noemail.net>2023-01-14 19:27:40 +0000
commit3f7b9944b8a489d378f573c5dede24bc9087c066 (patch)
treed2722c8f20064b4beba85f90a69e541d3498d5af /ext/misc/sqlar.c
parent58abb646c55391ec2bd4fd8c8c53bb337eaba9cb (diff)
downloadsqlite-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.c5
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