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; + } +  | 
