From: drh <> Date: Mon, 4 Mar 2024 11:12:15 +0000 (+0000) Subject: Fix assert() statements in date/time computations: The month and day numbers X-Git-Tag: version-3.46.0~174 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8d25d07d50ecfdf82b2148606fb1bdce24509bd2;p=thirdparty%2Fsqlite.git Fix assert() statements in date/time computations: The month and day numbers can be zero if an error has been seen. FossilOrigin-Name: fc773f6c76ec114be8b6e25b13885acb5adcc9d052dca0d8d0ff94e2a0743d64 --- diff --git a/manifest b/manifest index 0705277b93..f23cc045a5 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Document\swhy\sthe\swasm\sbuild\sdoes\snot\suse\sEmscripten's\s-sSTRICT=1\sflag\sand\saccount\sfor\sa\sbehaviour\schange\sin\semsdk\s3.1.55\sregarding\sthe\sHEAPxyz\ssymbols. -D 2024-03-04T09:56:47.061 +C Fix\sassert()\sstatements\sin\sdate/time\scomputations:\sThe\smonth\sand\sday\snumbers\ncan\sbe\szero\sif\san\serror\shas\sbeen\sseen. +D 2024-03-04T11:12:15.305 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -696,7 +696,7 @@ F src/build.c 04f1bcee189f045ab086d84fee95db42cb49df82ff8e84af8136309ff3c8a75f F src/callback.c db3a45e376deff6a16c0058163fe0ae2b73a2945f3f408ca32cf74960b28d490 F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e F src/ctime.c 23331529e654be40ca97d171cbbffe9b3d4c71cc53b78fe5501230675952da8b -F src/date.c b36a3cc75ac691bf72b4759130b04ac2926af6fd4ca98df3400ff20d34a15878 +F src/date.c 29cecfe69287242a12f753ffc883e4231afde3af501fb1b4a7b721b159fc4bb2 F src/dbpage.c 80e46e1df623ec40486da7a5086cb723b0275a6e2a7b01d9f9b5da0f04ba2782 F src/dbstat.c 3b677254d512fcafd4d0b341bf267b38b235ccfddbef24f9154e19360fa22e43 F src/delete.c cb766727c78e715f9fb7ec8a7d03658ed2a3016343ca687acfcec9083cdca500 @@ -2176,8 +2176,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 d162af2d9941cd8c53e3928efb42aaaf4e59454f7d39aebf980a30b1427ea75b -R a1392e5e8b70ba68a9cec5956be8638d -U stephan -Z eecd3ea1a1eec87bef8ed5be6afc5f59 +P f6e887203365b30cea6e9c145366345e48256a347388577edf2bada65e0655b7 +R 68522a41082e7767e1ccbf426313c9cf +U drh +Z cb9173c28803c9d207f1634b7853f7aa # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 4b98f8cca6..9788f68f52 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -f6e887203365b30cea6e9c145366345e48256a347388577edf2bada65e0655b7 \ No newline at end of file +fc773f6c76ec114be8b6e25b13885acb5adcc9d052dca0d8d0ff94e2a0743d64 \ No newline at end of file diff --git a/src/date.c b/src/date.c index 37bf7fdb4f..239a772ca2 100644 --- a/src/date.c +++ b/src/date.c @@ -296,8 +296,8 @@ static void computeJD(DateTime *p){ */ static void computeFloor(DateTime *p){ assert( p->validYMD || p->isError ); - assert( (p->D>=1 && p->D<=31) || p->isError ); - assert( (p->M>=1 && p->M<=12) || p->isError ); + assert( p->D>=0 && p->D<=31 ); + assert( p->M>=0 && p->M<=12 ); if( p->D<=28 ){ p->nFloor = 0; }else if( (1<M) & 0x15aa ){ @@ -1047,7 +1047,7 @@ static int parseModifier( int y = (int)r; assert( strcmp(aXformType[5].zName,"year")==0 ); computeYMD_HMS(p); - assert( p->M>=1 && p->M<=12 ); + assert( p->M>=0 && p->M<=12 ); p->Y += y; computeFloor(p); p->validJD = 0;