diff options
author | Nick Clifton <nickc@redhat.com> | 2014-11-18 17:35:39 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2014-11-18 17:35:39 +0000 |
commit | 0593bd3ace3cb64775f4d9e8039da919c26803cd (patch) | |
tree | 98309f0634d9a4eb99bd6ff90a7df7971e6b3009 /binutils/bucomm.c | |
parent | 8435453b810d8ab0574e509446003d10d04abfd4 (diff) | |
download | gdb-0593bd3ace3cb64775f4d9e8039da919c26803cd.zip gdb-0593bd3ace3cb64775f4d9e8039da919c26803cd.tar.gz gdb-0593bd3ace3cb64775f4d9e8039da919c26803cd.tar.bz2 |
Fixes a seg-fault when displaying the time data for a corrupt archive.
PR binutuls/17605
* bucomm.c (print_arelt_descr): Check for ctime returning NULL.
Diffstat (limited to 'binutils/bucomm.c')
-rw-r--r-- | binutils/bucomm.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/binutils/bucomm.c b/binutils/bucomm.c index b8deff5..6e2f692 100644 --- a/binutils/bucomm.c +++ b/binutils/bucomm.c @@ -429,8 +429,12 @@ print_arelt_descr (FILE *file, bfd *abfd, bfd_boolean verbose) const char *ctime_result = (const char *) ctime (&when); bfd_size_type size; - /* POSIX format: skip weekday and seconds from ctime output. */ - sprintf (timebuf, "%.12s %.4s", ctime_result + 4, ctime_result + 20); + /* PR binutils/17605: Check for corrupt time values. */ + if (ctime_result == NULL) + sprintf (timebuf, _("<time data corrupt>")); + else + /* POSIX format: skip weekday and seconds from ctime output. */ + sprintf (timebuf, "%.12s %.4s", ctime_result + 4, ctime_result + 20); mode_string (buf.st_mode, modebuf); modebuf[10] = '\0'; |