diff options
author | Ian Lance Taylor <ian@airs.com> | 1994-04-04 22:40:09 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1994-04-04 22:40:09 +0000 |
commit | 29e626eb971e3f0aaa26b1ff8a554e2b2c98b1cd (patch) | |
tree | 8b712376443393a786d3a5a3cafd325600ec9736 /bfd | |
parent | f3a14a9ee254994b54f756da391dd173bda82eee (diff) | |
download | gdb-29e626eb971e3f0aaa26b1ff8a554e2b2c98b1cd.zip gdb-29e626eb971e3f0aaa26b1ff8a554e2b2c98b1cd.tar.gz gdb-29e626eb971e3f0aaa26b1ff8a554e2b2c98b1cd.tar.bz2 |
Made sure that every call to bfd_read, bfd_write, and bfd_seek
checks the return value and handled bfd_error correctly. These
changes are not itemised. Also:
* aoutx.h (emit_strtab): Change return type to boolean, and return
errors.
(NAME(aout,write_syms)): Check emit_strtab return value.
(NAME(aout,final_link)): Likewise.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/aoutx.h | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/bfd/aoutx.h b/bfd/aoutx.h index 70a722b..5d94fb4 100644 --- a/bfd/aoutx.h +++ b/bfd/aoutx.h @@ -1038,7 +1038,8 @@ NAME(aout,set_section_contents) (abfd, section, location, offset, count) /* regardless, once we know what we're doing, we might as well get going */ if (section != obj_bsssec(abfd)) { - bfd_seek (abfd, section->filepos + offset, SEEK_SET); + if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0) + return false; if (count) { return (bfd_write ((PTR)location, 1, count, abfd) == count) ? @@ -1945,7 +1946,7 @@ add_to_stringtab (abfd, str, tab) return entry->index; } -static void +static boolean emit_strtab (abfd, tab) bfd *abfd; struct stringtab_data *tab; @@ -1960,11 +1961,16 @@ emit_strtab (abfd, tab) char buffer[BYTES_IN_WORD]; PUT_WORD (abfd, tab->index, (unsigned char *) buffer); - bfd_write ((PTR) buffer, 1, BYTES_IN_WORD, abfd); + if (bfd_write ((PTR) buffer, 1, BYTES_IN_WORD, abfd) != BYTES_IN_WORD) + return false; for (entry = tab->output_order; entry; entry = entry->next_to_output) { - bfd_write ((PTR) entry->string, 1, strlen (entry->string) + 1, abfd); + size_t len = strlen (entry->string) + 1; + + if (bfd_write ((PTR) entry->string, 1, len, abfd) != len) + return false; + #ifdef GATHER_STATISTICS count++; #endif @@ -2012,6 +2018,8 @@ emit_strtab (abfd, tab) } g->KEEPIT = (KEEPITTYPE) count; } */ + + return true; } boolean @@ -2060,9 +2068,7 @@ NAME(aout,write_syms) (abfd) g->KEEPIT = count; } - emit_strtab (abfd, &strtab); - - return true; + return emit_strtab (abfd, &strtab); } @@ -3600,9 +3606,7 @@ NAME(aout,final_link) (abfd, info, callback) /* Write out the string table. */ if (bfd_seek (abfd, obj_str_filepos (abfd), SEEK_SET) != 0) return false; - emit_strtab (abfd, &aout_info.strtab); - - return true; + return emit_strtab (abfd, &aout_info.strtab); } /* Link an a.out input BFD into the output file. */ |