]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Avoid left-shifting bits into the sign of a signed integer, as such behavior
authordrh <drh@noemail.net>
Wed, 8 Jul 2015 01:22:52 +0000 (01:22 +0000)
committerdrh <drh@noemail.net>
Wed, 8 Jul 2015 01:22:52 +0000 (01:22 +0000)
is technically undefined.

FossilOrigin-Name: 9417b4021b779876dcb3b9be636f01f4055eb54e

manifest
manifest.uuid
src/btree.c

index 7c9dd2b53971078d06607c5ff10f06c55b43e97b..77fde56543cb230fc16c259e2a56ca7ae0256443 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sa\scompile-time\sconstant\sfor\sconfiguring\sthe\sdefault\spagecache\ssetup.
-D 2015-07-07T21:14:42.575
+C Avoid\sleft-shifting\sbits\sinto\sthe\ssign\sof\sa\ssigned\sinteger,\sas\ssuch\sbehavior\nis\stechnically\sundefined.
+D 2015-07-08T01:22:52.331
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 017bf0511d1b2dd1db5e16488fbf75a17b526cbc
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -269,7 +269,7 @@ F src/auth.c b56c78ebe40a2110fd361379f7e8162d23f92240
 F src/backup.c 4d9134dc988a87838c06056c89c0e8c4700a0452
 F src/bitvec.c d1f21d7d91690747881f03940584f4cc548c9d3d
 F src/btmutex.c 45a968cc85afed9b5e6cf55bf1f42f8d18107f79
-F src/btree.c 740ab30df845f4a2c2bdb731ed191b4b63b2b2eb
+F src/btree.c 781deff0d5af639e8dd4f83ec963cc3bbf8cffc2
 F src/btree.h 969adc948e89e449220ff0ff724c94bb2a52e9f1
 F src/btreeInt.h 2ad754dd4528baa8d0946a593cc373b890bf859e
 F src/build.c b3f15255d5b16e42dafeaa638fd4f8a47c94ed70
@@ -1364,7 +1364,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 26db0fee06947d75621237a641b9652b312b3b37
-R eddaba760dcd1fbd940dd405a17b49da
+P ad5fdfbac85682f0f0dee62e1086f40026a58be2
+R ffdb1dc8cf76fb977c83d0c8ad3dcce5
 U drh
-Z 4021e6ca5eea0db9e457b6c7679c87e9
+Z 1578fd578fb2f64903bdcd3127f0d5d4
index 799437db107121830094405ae8536a16d3490103..bd9adfaf6386cacddf1436c40df77acb119b3bc1 100644 (file)
@@ -1 +1 @@
-ad5fdfbac85682f0f0dee62e1086f40026a58be2
\ No newline at end of file
+9417b4021b779876dcb3b9be636f01f4055eb54e
\ No newline at end of file
index f353e8df1fc57faf96941f11cdd2c2196f944014..17c7bb67c30aef979010cdf830dcc1ff36c5d37d 100644 (file)
@@ -9119,7 +9119,7 @@ static int checkTreePage(
       assert( (u32)i<=usableSize-4 );     /* Enforced by btreeInitPage() */
       size = get2byte(&data[i+2]);
       assert( (u32)(i+size)<=usableSize );  /* Enforced by btreeInitPage() */
-      btreeHeapInsert(heap, (i<<16)|(i+size-1));
+      btreeHeapInsert(heap, (((u32)i)<<16)|(i+size-1));
       /* EVIDENCE-OF: R-58208-19414 The first 2 bytes of a freeblock are a
       ** big-endian integer which is the offset in the b-tree page of the next
       ** freeblock in the chain, or zero if the freeblock is the last on the