mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-08-01 10:06:59 +03:00
fixing an out of bound adressing issue Daniel
* xmlschemastypes.c: fixing an out of bound adressing issue Daniel
This commit is contained in:
@ -3128,17 +3128,21 @@ static long
|
||||
_xmlSchemaDateCastYMToDays (const xmlSchemaValPtr dt)
|
||||
{
|
||||
long ret;
|
||||
int mon;
|
||||
|
||||
if (dt->value.date.year < 0)
|
||||
mon = dt->value.date.mon;
|
||||
if (mon <= 0) mon = 1; /* normalization */
|
||||
|
||||
if (dt->value.date.year <= 0)
|
||||
ret = (dt->value.date.year * 365) +
|
||||
(((dt->value.date.year+1)/4)-((dt->value.date.year+1)/100)+
|
||||
((dt->value.date.year+1)/400)) +
|
||||
DAY_IN_YEAR(0, dt->value.date.mon, dt->value.date.year);
|
||||
DAY_IN_YEAR(0, mon, dt->value.date.year);
|
||||
else
|
||||
ret = ((dt->value.date.year-1) * 365) +
|
||||
(((dt->value.date.year-1)/4)-((dt->value.date.year-1)/100)+
|
||||
((dt->value.date.year-1)/400)) +
|
||||
DAY_IN_YEAR(0, dt->value.date.mon, dt->value.date.year);
|
||||
DAY_IN_YEAR(0, mon, dt->value.date.year);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
Reference in New Issue
Block a user