So now time is printed by default afl has found that time_t values
such as -9223372035438150153 will cause localtime() to fail and
return NULL. strftime() can't deal with this and will at some point
dereference tm without checking if it is NULL causing a crash.
Index: ktrstruct.c
===================================================================
RCS file: /cvs/src/usr.bin/kdump/ktrstruct.c,v
retrieving revision 1.8
diff -u -p -r1.8 ktrstruct.c
--- ktrstruct.c 15 Dec 2014 01:48:54 -0000 1.8
+++ ktrstruct.c 15 Dec 2014 13:56:03 -0000
@@ -146,8 +146,10 @@ print_time(time_t t, int relative, int h
if (!relative) {
tm = localtime(&t);
- (void)strftime(timestr, sizeof(timestr), TIME_FORMAT, tm);
- printf("<\"%s\">", timestr);
+ if (tm != NULL) {
+ (void)strftime(timestr, sizeof(timestr), TIME_FORMAT,
tm);
+ printf("<\"%s\">", timestr);
+ }
}
}