]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Interpret negative arguments to sqlite3_sleep() as zero.
authordrh <>
Tue, 2 May 2023 16:34:15 +0000 (16:34 +0000)
committerdrh <>
Tue, 2 May 2023 16:34:15 +0000 (16:34 +0000)
FossilOrigin-Name: 2b542326aa8e7e1f6ed9d999b95ae5340278e0821277a17de3cc803b4af793ae

manifest
manifest.uuid
src/main.c
src/sqlite.h.in
test/misc1.test

index 43474ee29ca3e5a03c37c8c41a29f78d743101b9..4e71077e8a5c907d31829be4f487d0888a64b0ac 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Improved\shandling\sof\sNULL\sarguments\sto\sjson_valid()\sand\njson_error_position().\s[forum:/forumpost/06c6334412|Forum\spost\s06c6334412].
-D 2023-05-02T11:12:01.595
+C Interpret\snegative\sarguments\sto\ssqlite3_sleep()\sas\szero.
+D 2023-05-02T16:34:15.974
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -598,7 +598,7 @@ F src/insert.c a8de1db43335fc4946370a7a7e47d89975ad678ddb15078a150e993ba2fb37d4
 F src/json.c acb60ec1585a98b25b18d064384f31959405e5591246480db557e264133f5939
 F src/legacy.c d7874bc885906868cd51e6c2156698f2754f02d9eee1bae2d687323c3ca8e5aa
 F src/loadext.c be5af440f3192c58681b5d43167dbca3ccbfce394d89faa22378a14264781136
-F src/main.c 09bc5191f75dc48fc4dfddda143cb864c0c3dbc3297eb9a9c8e01fea58ff847d
+F src/main.c 035be2e9ba2a0fc1701a8ab1880af3001a968a24556433538a6c073558ee4341
 F src/malloc.c 47b82c5daad557d9b963e3873e99c22570fb470719082c6658bf64e3012f7d23
 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
 F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de
@@ -637,7 +637,7 @@ F src/resolve.c 3e53e02ce87c9582bd7e7d22f13f4094a271678d9dc72820fa257a2abb5e4032
 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
 F src/select.c f879cef11c462a2c37a8c906932781e384c3bb32042c355a704a043029c90d27
 F src/shell.c.in ae33222a1776ce24a1e0fe565639126e9fd6efd276af8df562d9296db53cd3d7
-F src/sqlite.h.in 6066996620c2a97193518148ab2d3cedf37d8ee7667dafa96c207a86152b2cfb
+F src/sqlite.h.in d6b0b83b2deab8f92ef7cc6f6fb94fa59d21c59f7b55f4c693bfff161ce42238
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
 F src/sqlite3ext.h da473ce2b3d0ae407a6300c4a164589b9a6bfdbec9462688a8593ff16f3bb6e4
 F src/sqliteInt.h ef0268eeba1449170d5967493a3f6b720344cd6f461c3430299c00d51da74d9d
@@ -1325,7 +1325,7 @@ F test/minmax.test fe638b55d77d2375531a8f549b338eafcd9adfbd2f72df37ed77d9b26ca0a
 F test/minmax2.test cf9311babb6f0518d04e42fd6a42c619531c4309a9dd790a2c4e9b3bc595e0de
 F test/minmax3.test cc1e8b010136db0d01a6f2a29ba5a9f321034354
 F test/minmax4.test 272ca395257f05937dc96441c9dde4bc9fbf116a8d4fa02baeb0d13d50e36c87
-F test/misc1.test 9955e70cab5e284d77e358cfa1f1dd43f5e4bc00a421018581b0fbd62206a6a1
+F test/misc1.test 8d138a4926ab90617c1aa29ce26e7785ae2b83a4d3a195d543b7374e05589dd1
 F test/misc2.test 71e746af479119386ac2ed7ab7d81d99970e75b49ffd3e8efffee100b4b5f350
 F test/misc3.test cf3dda47d5dda3e53fc5804a100d3c82be736c9d
 F test/misc4.test 10cd6addb2fa9093df4751a1b92b50440175dd5468a6ec84d0386e78f087db0e
@@ -2068,8 +2068,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 41a8a15c4b6f6157b12d43976e300763ef8a4963986d2806557ad0d8b0a784cd
-R ac8e37433aff844778b8019ba20de84e
+P ab78e6946ba8125a83ff155561adf9c8df4d1c09a645fce08c8245ddb08bfa3b
+R 5118eb93bc588887d626767e578c1656
 U drh
-Z fdf5f91c1580ba93eac92cce90bc0c2d
+Z bf1145d4ad4b3fe66c806783f54fa71a
 # Remove this line to create a well-formed Fossil manifest.
index ce36252b4819939a18dbef54719632275a9f9e42..11d39eef5cf5ff9a11817e950da30ef4085829c6 100644 (file)
@@ -1 +1 @@
-ab78e6946ba8125a83ff155561adf9c8df4d1c09a645fce08c8245ddb08bfa3b
\ No newline at end of file
+2b542326aa8e7e1f6ed9d999b95ae5340278e0821277a17de3cc803b4af793ae
\ No newline at end of file
index 3f03a5c1eafbf295a3053390b209e026f4620cf4..d7f366b5ebf64f7d339da731c8ab5e02b31a7a9a 100644 (file)
@@ -3933,7 +3933,7 @@ int sqlite3_sleep(int ms){
   /* This function works in milliseconds, but the underlying OsSleep() 
   ** API uses microseconds. Hence the 1000's.
   */
-  rc = (sqlite3OsSleep(pVfs, 1000*ms)/1000);
+  rc = (sqlite3OsSleep(pVfs, ms<0 ? 0 : 1000*ms)/1000);
   return rc;
 }
 
index e31c899b637bb60ae13aaa4d9be21c2d5f6b37ca..a9972adbba512ed6e3249b8c0e4196ce78db20e5 100644 (file)
@@ -6255,6 +6255,13 @@ void sqlite3_activate_cerod(
 ** of the default VFS is not implemented correctly, or not implemented at
 ** all, then the behavior of sqlite3_sleep() may deviate from the description
 ** in the previous paragraphs.
+**
+** If a negative argument is passed to sqlite3_sleep() the results vary by
+** VFS and operating system.  Some system treat a negative argument as an
+** instruction to sleep forever.  Others understand it to mean do not sleep
+** at all. ^In SQLite version 3.42.0 and later, a negative
+** argument passed into sqlite3_sleep() is changed to zero before it is relayed
+** down into the xSleep method of the VFS.
 */
 int sqlite3_sleep(int);
 
index 44914156cb03d87e7f9d22956b3e13051fe8a677..83acc752af74c5b3d4c4cdf2aa98ba7b2566e617 100644 (file)
@@ -592,6 +592,9 @@ do_test misc1-18.1 {
   set n [sqlite3_sleep 100]
   expr {$n>=100}
 } {1}
+do_test misc1-18.2 {
+  sqlite3_sleep -100
+} {0}
 
 # 2014-01-10:  In a CREATE TABLE AS, if one or more of the column names
 # are an empty string, that is still OK.