Fix null pointer dereference in parse_date().
Passing a date in format "mm-dd-yy" where short forms are not allowed would lead to a null pointer dereference here. This one fixes that. Spotted by clang-analyzer. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
This commit is contained in:
parent
5fc6d92866
commit
3a4431e568
21
src/utils.c
21
src/utils.c
@ -843,16 +843,19 @@ parse_date (char *date_string, enum datefmt datefmt, int *year, int *month,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (y > 0 && y < 100)
|
if (slctd_date)
|
||||||
{
|
{
|
||||||
/* convert "YY" format into "YYYY" */
|
if (y > 0 && y < 100)
|
||||||
y += slctd_date->yyyy - slctd_date->yyyy % 100;
|
{
|
||||||
}
|
/* convert "YY" format into "YYYY" */
|
||||||
else if (n < 2)
|
y += slctd_date->yyyy - slctd_date->yyyy % 100;
|
||||||
{
|
}
|
||||||
/* set year and, optionally, month if short from is used */
|
else if (n < 2)
|
||||||
y = slctd_date->yyyy;
|
{
|
||||||
if (n < 1) m = slctd_date->mm;
|
/* set year and, optionally, month if short from is used */
|
||||||
|
y = slctd_date->yyyy;
|
||||||
|
if (n < 1) m = slctd_date->mm;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check if date is valid, take leap years into account */
|
/* check if date is valid, take leap years into account */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user