diff options
Diffstat (limited to 'abs/extra-testing/mc/mc-4.6.1-invalid-mtime.patch')
-rw-r--r-- | abs/extra-testing/mc/mc-4.6.1-invalid-mtime.patch | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/abs/extra-testing/mc/mc-4.6.1-invalid-mtime.patch b/abs/extra-testing/mc/mc-4.6.1-invalid-mtime.patch new file mode 100644 index 0000000..07b1f6d --- /dev/null +++ b/abs/extra-testing/mc/mc-4.6.1-invalid-mtime.patch @@ -0,0 +1,30 @@ + + 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; + } + |