From 3a4431e5687cc45e2f3a774c8ea782aaef47efdd Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Mon, 11 Apr 2011 16:47:23 +0200 Subject: 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 --- src/utils.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'src/utils.c') diff --git a/src/utils.c b/src/utils.c index d21debe..22c5be9 100644 --- a/src/utils.c +++ b/src/utils.c @@ -843,16 +843,19 @@ parse_date (char *date_string, enum datefmt datefmt, int *year, int *month, return 0; } - if (y > 0 && y < 100) + if (slctd_date) { - /* convert "YY" format into "YYYY" */ - y += slctd_date->yyyy - slctd_date->yyyy % 100; - } - else if (n < 2) - { - /* set year and, optionally, month if short from is used */ - y = slctd_date->yyyy; - if (n < 1) m = slctd_date->mm; + if (y > 0 && y < 100) + { + /* convert "YY" format into "YYYY" */ + y += slctd_date->yyyy - slctd_date->yyyy % 100; + } + else if (n < 2) + { + /* 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 */ -- cgit v1.2.3-54-g00ecf