Use sqlite3_result_int64() instead of sqlite3_result_int() when returning

potentially large values from the DBSTAT virtual table, to avoid integer
overflows in the result.
[forum:/forumpost/ada2ab044f|Forum post ada2ab044f].

FossilOrigin-Name: 5652154a8c93cf3b1ff6c2e55e94abbe995b0bb625f733461df20e006c2f13f8
This commit is contained in:
drh
2022-12-02 15:31:47 +00:00
parent 80ea1f406a
commit 8b5d7fda59
3 changed files with 13 additions and 13 deletions
+7 -7
View File
@@ -1,5 +1,5 @@
C Minor\stouchups\sto\sthe\sJS\stest\sindex\spage\sand\stest\sserver\spush\srules.
D 2022-12-02T11:35:21.811
C Use\ssqlite3_result_int64()\sinstead\sof\ssqlite3_result_int()\swhen\sreturning\npotentially\slarge\svalues\sfrom\sthe\sDBSTAT\svirtual\stable,\sto\savoid\sinteger\noverflows\sin\sthe\sresult.\n[forum:/forumpost/ada2ab044f|Forum\spost\sada2ab044f].
D 2022-12-02T15:31:47.541
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -593,7 +593,7 @@ F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
F src/ctime.c 20507cc0b0a6c19cd882fcd0eaeda32ae6a4229fb4b024cfdf3183043d9b703d
F src/date.c 94ce83b4cd848a387680a5f920c9018c16655db778c4d36525af0a0f34679ac5
F src/dbpage.c f1a87f4ebcf22284e0aaf0697862f4ccfc120dcd6db3d8dfa3b049b2580c01d8
F src/dbstat.c 861e08690fcb0f2ee1165eff0060ea8d4f3e2ea10f80dab7d32ad70443a6ff2d
F src/dbstat.c a56a7ad1163a9888d46cd5820be2e65354fb1aa04ed6909f7c3e5831e0ee2c29
F src/delete.c 86573edae75e3d3e9a8b590d87db8e47222103029df4f3e11fa56044459b514e
F src/expr.c 9e7fadc664b938c18f006be0d4f6669888f9302756ee204420c7eccaed5435a6
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
@@ -2065,8 +2065,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 758112460fb624198a144ed7d8d2324497fa72a2eee80010bd22b621e064b389
R 7335100c09b3966256d4f515791e8509
U stephan
Z 82fdbc046c1724ee06335f4931485b56
P 0881f3e92364b3dc81443220451e853c0763efaf97653a6348bc39bd9bdb23ad
R e242bef08302ff1ff3602cd93b1159c9
U drh
Z e49db422920b594adc6e6d22717359b3
# Remove this line to create a well-formed Fossil manifest.
+1 -1
View File
@@ -1 +1 @@
0881f3e92364b3dc81443220451e853c0763efaf97653a6348bc39bd9bdb23ad
5652154a8c93cf3b1ff6c2e55e94abbe995b0bb625f733461df20e006c2f13f8
+5 -5
View File
@@ -824,16 +824,16 @@ static int statColumn(
}
break;
case 4: /* ncell */
sqlite3_result_int(ctx, pCsr->nCell);
sqlite3_result_int64(ctx, pCsr->nCell);
break;
case 5: /* payload */
sqlite3_result_int(ctx, pCsr->nPayload);
sqlite3_result_int64(ctx, pCsr->nPayload);
break;
case 6: /* unused */
sqlite3_result_int(ctx, pCsr->nUnused);
sqlite3_result_int64(ctx, pCsr->nUnused);
break;
case 7: /* mx_payload */
sqlite3_result_int(ctx, pCsr->nMxPayload);
sqlite3_result_int64(ctx, pCsr->nMxPayload);
break;
case 8: /* pgoffset */
if( !pCsr->isAgg ){
@@ -841,7 +841,7 @@ static int statColumn(
}
break;
case 9: /* pgsize */
sqlite3_result_int(ctx, pCsr->szPage);
sqlite3_result_int64(ctx, pCsr->szPage);
break;
case 10: { /* schema */
sqlite3 *db = sqlite3_context_db_handle(ctx);