diff options
author | Alan Modra <amodra@gmail.com> | 2014-04-07 13:44:50 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2014-04-07 13:59:31 +0930 |
commit | 5063a42103f83b921b0b6899acdd5d4d920fdc36 (patch) | |
tree | 6f4061fb293067a8be046a4d10367b85472e2c8a | |
parent | 27f0d6b4fe4888e3bb0bdc8e64af51c521fa9f1d (diff) | |
download | fsf-binutils-gdb-5063a42103f83b921b0b6899acdd5d4d920fdc36.zip fsf-binutils-gdb-5063a42103f83b921b0b6899acdd5d4d920fdc36.tar.gz fsf-binutils-gdb-5063a42103f83b921b0b6899acdd5d4d920fdc36.tar.bz2 |
Report an error on objcopy/strip of sectionless binaries
All strip operations require section headers to be present, as do most
objcopy operations. BFD is seriously confused by objects without
section info. The error message added here is similar to the error
on attempting to strip/objcopy a zero length object.
PR binutils/16811
* objcopy.c (copy_object): Error if no sections.
-rw-r--r-- | binutils/ChangeLog | 5 | ||||
-rw-r--r-- | binutils/objcopy.c | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 931d9d0..56df68f 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +2014-04-07 Alan Modra <amodra@gmail.com> + + PR binutils/16811 + * objcopy.c (copy_object): Error if no sections. + 2014-04-03 Markus Trippelsdorf <markus@trippelsdorf.de> PR binutils/14698 diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 6215919..873908c 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -1598,6 +1598,13 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch) return FALSE; } + if (ibfd->sections == NULL) + { + non_fatal (_("error: the input file '%s' has no sections"), + bfd_get_archive_filename (ibfd)); + return FALSE; + } + if (verbose) printf (_("copy from `%s' [%s] to `%s' [%s]\n"), bfd_get_archive_filename (ibfd), bfd_get_target (ibfd), |