linamh/app-misc/mc/files/mc-4.6.1-invalid-mtime.patch
geos_one f5551576e3 add mc
git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/linamh@1108 6952d904-891a-0410-993b-d76249ca496b
2009-04-18 20:23:02 +00:00

31 lines
787 B
Diff

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 <maxim@office.modum.by>
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, i18n_timelength, fmt, localtime(&when));
+ whentm = localtime(&when);
+ if (whentm == NULL)
+ return "(invalid)";
+
+ strftime (timebuf, i18n_timelength, fmt, whentm);
return timebuf;
}