From: drh <> Date: Fri, 2 Dec 2022 15:31:47 +0000 (+0000) Subject: Use sqlite3_result_int64() instead of sqlite3_result_int() when returning X-Git-Tag: version-3.41.0~327 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8b5d7fda5908dcf6fedd440f184d45c9eab8de87;p=thirdparty%2Fsqlite.git 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 --- diff --git a/manifest b/manifest index 026dcfc9cc..b6ab812953 100644 --- a/manifest +++ b/manifest @@ -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. diff --git a/manifest.uuid b/manifest.uuid index b5b97e7e1c..19414a7f61 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -0881f3e92364b3dc81443220451e853c0763efaf97653a6348bc39bd9bdb23ad \ No newline at end of file +5652154a8c93cf3b1ff6c2e55e94abbe995b0bb625f733461df20e006c2f13f8 \ No newline at end of file diff --git a/src/dbstat.c b/src/dbstat.c index bb88a76f40..fdef913f88 100644 --- a/src/dbstat.c +++ b/src/dbstat.c @@ -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);