diff options
author | Alan Modra <amodra@gmail.com> | 2005-10-26 04:29:53 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2005-10-26 04:29:53 +0000 |
commit | 5c91cdfb252222206a3a1139de7b6200b421e043 (patch) | |
tree | bbe8166a9690b576551f92e5b0eca4c1bfdf2015 /bfd | |
parent | ee4ced6a5c895a92192d4b7c8f01680ce0447773 (diff) | |
download | gdb-5c91cdfb252222206a3a1139de7b6200b421e043.zip gdb-5c91cdfb252222206a3a1139de7b6200b421e043.tar.gz gdb-5c91cdfb252222206a3a1139de7b6200b421e043.tar.bz2 |
* cache.c (bfd_open_file): Set bfd_error_system_call on failure
to open file.
(bfd_cache_lookup_worker): Remove check that file pos is in
unsigned long range. Print system error before aborting.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/cache.c | 21 |
2 files changed, 20 insertions, 8 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index c12c6ac..a1e35e0 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2005-10-26 Alan Modra <amodra@bigpond.net.au> + + * cache.c (bfd_open_file): Set bfd_error_system_call on failure + to open file. + (bfd_cache_lookup_worker): Remove check that file pos is in + unsigned long range. Print system error before aborting. + 2005-10-25 Arnold Metselaar <arnold.metselaar@planet.nl> * Makefile.am: Add rules for coff-z80 and cpu-z80. diff --git a/bfd/cache.c b/bfd/cache.c index e2524fb..e9f38ab 100644 --- a/bfd/cache.c +++ b/bfd/cache.c @@ -447,7 +447,9 @@ bfd_open_file (bfd *abfd) break; } - if (abfd->iostream != NULL) + if (abfd->iostream == NULL) + bfd_set_error (bfd_error_system_call); + else { if (! bfd_cache_init (abfd)) return NULL; @@ -489,14 +491,17 @@ bfd_cache_lookup_worker (bfd *abfd) snip (abfd); insert (abfd); } + return (FILE *) abfd->iostream; } + + if (bfd_open_file (abfd) == NULL) + ; + else if (real_fseek ((FILE *) abfd->iostream, abfd->where, SEEK_SET) != 0) + bfd_set_error (bfd_error_system_call); else - { - if (bfd_open_file (abfd) == NULL - || abfd->where != (unsigned long) abfd->where - || real_fseek ((FILE *) abfd->iostream, abfd->where, SEEK_SET) != 0) - abort (); - } + return (FILE *) abfd->iostream; - return (FILE *) abfd->iostream; + bfd_perror ("Cannot continue"); + abort (); + return NULL; } |