summaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorRicardo Mestre <mestre@cvs.openbsd.org>2018-08-20 06:24:51 +0000
committerRicardo Mestre <mestre@cvs.openbsd.org>2018-08-20 06:24:51 +0000
commitea6cb9defff80af87a2b5343f5418aa49677dea2 (patch)
treecc164e43fbf64c62325306dd405105cce98a0379 /usr.sbin
parentf173482c153c0cc21794f623996a652212d35d6c (diff)
Since we can feed localtime(3) with garbage input, or with input it cannot
interpret, we always need to check its return value, and in the case it's NULL then error and exit before proceeding further otherwise in this specific program we would find a null dereference down the road which would make the program segfault. OK cheloha@
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/ac/ac.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/usr.sbin/ac/ac.c b/usr.sbin/ac/ac.c
index 97d0f82034e..f0005cea8a9 100644
--- a/usr.sbin/ac/ac.c
+++ b/usr.sbin/ac/ac.c
@@ -410,6 +410,8 @@ ac(FILE *fp)
prev = usr.ut_time;
if (Flags & AC_D) {
ltm = localtime(&usr.ut_time);
+ if (ltm == NULL)
+ err(1, "localtime");
if (day >= 0 && day != ltm->tm_yday) {
day = ltm->tm_yday;
/*
@@ -461,6 +463,8 @@ ac(FILE *fp)
if (Flags & AC_D) {
ltm = localtime(&usr.ut_time);
+ if (ltm == NULL)
+ err(1, "localtime");
if (day >= 0 && day != ltm->tm_yday) {
/*
* print yesterday's total