diff -urN nmap-7.12/timing.cc nmap-7.12-r1/timing.cc --- nmap-7.12/timing.cc 2015-06-23 02:09:01.000000000 +0200 +++ nmap-7.12-r1/timing.cc 2016-06-06 16:31:13.610258583 +0200 @@ -707,13 +707,20 @@ /* Get the estimated time of day at completion */ timet = last_est.tv_sec; ltime = localtime(&timet); - assert(ltime); - log_write(LOG_STDOUT, "%s Timing: About %.2f%% done; ETC: %02d:%02d (%.f:%02.f:%02.f remaining)\n", - scantypestr, perc_done * 100, ltime->tm_hour, ltime->tm_min, - floor(time_left_s / 60.0 / 60.0), - floor(fmod(time_left_s / 60.0, 60.0)), - floor(fmod(time_left_s, 60.0))); + if (ltime != NULL) { + log_write(LOG_STDOUT, "%s Timing: About %.2f%% done; ETC: %02d:%02d (%.f:%02.f:%02.f remaining)\n", + scantypestr, perc_done * 100, ltime->tm_hour, ltime->tm_min, + floor(time_left_s / 60.0 / 60.0), + floor(fmod(time_left_s / 60.0, 60.0)), + floor(fmod(time_left_s, 60.0))); + } else { + log_write(LOG_STDOUT, "%s Timing: About %.2f%% done; ETC: Unknown (%.f:%02.f:%02.f remaining)\n", + scantypestr, perc_done * 100, + floor(time_left_s / 60.0 / 60.0), + floor(fmod(time_left_s / 60.0, 60.0)), + floor(fmod(time_left_s, 60.0))); + } xml_open_start_tag("taskprogress"); xml_attribute("task", "%s", scantypestr); xml_attribute("time", "%lu", (unsigned long) now->tv_sec);