]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Enhance the sqlite3_strglob() and sqlite3_strlike() interfaces so that they
authordrh <>
Tue, 25 Oct 2022 13:44:18 +0000 (13:44 +0000)
committerdrh <>
Tue, 25 Oct 2022 13:44:18 +0000 (13:44 +0000)
will do sensible things with NULL string pointers.  This is an extra layer
of defense against bugs such as reported by
[forum:/forumpost/730b554179|forum post 730b554179].

FossilOrigin-Name: 8ba9c884bded52e3e044ff39c826c04838e7c31f05d802f4a14d9ce5a01ab721

manifest
manifest.uuid
src/func.c

index 022b4ce4d01eac2c3b08ae7353e51ff2b13a145c..347218bd3ab8fc0427eaf51288e875ac3463bfcf 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Make\sthe\s".dump"\scommand\sof\sthe\sCLI\smore\srobust\sagainst\smalformed\sdatabases.\nSee\s[forum:/forumpost/730b554179|forum\spost\s730b554179].
-D 2022-10-25T13:42:10.151
+C Enhance\sthe\ssqlite3_strglob()\sand\ssqlite3_strlike()\sinterfaces\sso\sthat\sthey\nwill\sdo\ssensible\sthings\swith\sNULL\sstring\spointers.\s\sThis\sis\san\sextra\slayer\nof\sdefense\sagainst\sbugs\ssuch\sas\sreported\sby\n[forum:/forumpost/730b554179|forum\spost\s730b554179].
+D 2022-10-25T13:44:18.953
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -573,7 +573,7 @@ F src/delete.c 86573edae75e3d3e9a8b590d87db8e47222103029df4f3e11fa56044459b514e
 F src/expr.c 847f87d9df3ede2b2b0a8db088af0b9c1923b21009f8ea1b9b7b28cb0a383170
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c 722f20779f5342a787922deded3628d8c74b5249cab04098cf17ee2f2aaff002
-F src/func.c fe2a795ad647ce42054873ac91c43beb7b5d204892903a67f6e7e314379b9d4a
+F src/func.c d25f3c667d59dbac195e65f3539fdbbd8a36c142ce7bcdb45d1baf07446ad13a
 F src/global.c e83ee571b79ee3adc32e380cf554cf1254bc43763d23786c71721fbcdfbbb965
 F src/hash.c 8d7dda241d0ebdafb6ffdeda3149a412d7df75102cecfc1021c98d6219823b19
 F src/hash.h 3340ab6e1d13e725571d7cee6d3e3135f0779a7d8e76a9ce0a85971fa3953c51
@@ -2037,8 +2037,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 9c8df130b8137cb4705f805907d1ff754d7f4b07bf181e1d05f1798b7aa5f4f6
-R 23401c751a5369145738c4b7f745d240
+P 0573edfb9e0b1fd51e8da20592c71b02040968c33fdec41c31a6b1b7d3e83262
+R b962dfb311d9f3ef292f680567ba007c
 U drh
-Z 40633614ee3a7dbce2fa03715269ae26
+Z d1fa08bbcbba3825117385d2044b1b0a
 # Remove this line to create a well-formed Fossil manifest.
index af1961e770b51e6e14ec7f7c422de3d3f0182c6b..3abac015f4cbe3a390af15ce805b64ce5d571ae3 100644 (file)
@@ -1 +1 @@
-0573edfb9e0b1fd51e8da20592c71b02040968c33fdec41c31a6b1b7d3e83262
\ No newline at end of file
+8ba9c884bded52e3e044ff39c826c04838e7c31f05d802f4a14d9ce5a01ab721
\ No newline at end of file
index 06581cbe3221b8719594eba3e37fa2a25c771283..b42b2588affd9c00386578c18befed6a90e050d9 100644 (file)
@@ -823,7 +823,13 @@ static int patternCompare(
 ** non-zero if there is no match.
 */
 int sqlite3_strglob(const char *zGlobPattern, const char *zString){
-  return patternCompare((u8*)zGlobPattern, (u8*)zString, &globInfo, '[');
+  if( zString==0 ){
+    return zGlobPattern!=0;
+  }else if( zGlobPattern==0 ){
+    return 1;
+  }else {
+    return patternCompare((u8*)zGlobPattern, (u8*)zString, &globInfo, '[');
+  }
 }
 
 /*
@@ -831,7 +837,13 @@ int sqlite3_strglob(const char *zGlobPattern, const char *zString){
 ** a miss - like strcmp().
 */
 int sqlite3_strlike(const char *zPattern, const char *zStr, unsigned int esc){
-  return patternCompare((u8*)zPattern, (u8*)zStr, &likeInfoNorm, esc);
+  if( zStr==0 ){
+    return zPattern!=0;
+  }else if( zPattern==0 ){
+    return 1;
+  }else{
+    return patternCompare((u8*)zPattern, (u8*)zStr, &likeInfoNorm, esc);
+  }
 }
 
 /*