Invalid timestamps on files caused mc to segfault by passing a null pointer to strftime. Avoid trying to print the time in this case. Reported by Maxim Britov at http://bugs.gentoo.org/184296 --- mc-4.6.1/src/util.c +++ mc-4.6.1/src/util.c @@ -717,6 +717,7 @@ static size_t i18n_timelength = 0; static const char *fmtyear, *fmttime; const char *fmt; + struct tm *whentm; if (i18n_timelength == 0){ i18n_timelength = i18n_checktimelength() + 1; @@ -740,7 +741,11 @@ else fmt = fmttime; - strftime (timebuf, sizeof (timebuf) - 1, fmt, localtime(&when)); + whentm = localtime(&when); + if (whentm == NULL) + return "(invalid)"; + + strftime (timebuf, sizeof (timebuf) - 1, fmt, whentm); return timebuf; }