Mon Oct 5 14:32:55 1992 Per Bothner (bothner@cygnus.com)
- * archive.c (_bfd_write_archive_contents): If read fails,
- set bfd_error to malformed_archive (since this probably
+ * archive.c: Make errno global.
+ * archive.c (_bfd_write_archive_contents): If read fails (and
+ errno!=0) set bfd_error to malformed_archive (since this probably
indicates a truncated archive), rather than system_call_error.
Mon Oct 5 03:33:39 1992 Mark Eichin (eichin at tweedledumber.cygnus.com)
#include "libbfd.h"
#include "aout/ar.h"
#include "aout/ranlib.h"
+#include <errno.h>
+
+#ifndef errno
+extern int errno;
+#endif
#ifdef GNU960
#define BFD_GNU960_ARMAG(abfd) (BFD_COFF_FILE_P((abfd)) ? ARMAG : ARMAGB)
bfd *arch;
char *name;
{
-#ifndef errno
- extern int errno;
-#endif
unsigned long index = 0;
/* Should extract string so that I can guarantee not to overflow into
if (amt > remaining) {
amt = remaining;
}
+ errno = 0;
if (bfd_read (buffer, amt, 1, current) != amt) {
+ if (errno) goto syserr;
/* Looks like a truncated archive. */
bfd_error = malformed_archive;
return false;