1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-07 02:42:48 +03:00

Fix assert() statements in date/time computations: The month and day numbers

can be zero if an error has been seen.

FossilOrigin-Name: fc773f6c76ec114be8b6e25b13885acb5adcc9d052dca0d8d0ff94e2a0743d64
This commit is contained in:
drh
2024-03-04 11:12:15 +00:00
parent 2775f10ebc
commit 8d25d07d50
3 changed files with 11 additions and 11 deletions

View File

@@ -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<<p->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;