diff options
-rw-r--r-- | binutils/ChangeLog | 7 | ||||
-rw-r--r-- | binutils/bucomm.c | 2 | ||||
-rw-r--r-- | binutils/objcopy.c | 6 |
3 files changed, 13 insertions, 2 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index c748a6a77e..0ff041fce0 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,10 @@ +2009-06-27 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/10321 + * bucomm.c (get_file_size): Return -1 on error. + + * objcopy.c (copy_file): Report empty file. + 2009-06-23 Nick Clifton <nickc@redhat.com> * dwarf.c (display_debug_lines_raw): Include the name of the diff --git a/binutils/bucomm.c b/binutils/bucomm.c index 9bbdafb906..c6786790a7 100644 --- a/binutils/bucomm.c +++ b/binutils/bucomm.c @@ -571,7 +571,7 @@ get_file_size (const char * file_name) else return statbuf.st_size; - return 0; + return (off_t) -1; } /* Return the filename in a static buffer. */ diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 83d9e1b2aa..8908b564e1 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -2159,9 +2159,13 @@ copy_file (const char *input_filename, const char *output_filename, bfd *ibfd; char **obj_matching; char **core_matching; + off_t size = get_file_size (input_filename); - if (get_file_size (input_filename) < 1) + if (size < 1) { + if (size == 0) + non_fatal (_("error: the input file '%s' is empty"), + input_filename); status = 1; return; } |