summaryrefslogtreecommitdiff
path: root/binutils/sysdump.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2007-10-15 02:00:56 +0000
committerAlan Modra <amodra@bigpond.net.au>2007-10-15 02:00:56 +0000
commitf44680e51f75097806d4f445fb4018ab2c00ef38 (patch)
tree6bb5c4534bddb3d5cd9ec84af015848da1ca2c1d /binutils/sysdump.c
parent524abc520d0748d5fda7fb71ce24ef7b114722e3 (diff)
downloadbinutils-redhat-f44680e51f75097806d4f445fb4018ab2c00ef38.tar.gz
* objdump.c (print_line): Check fwrite return value.
* srconv.c (checksum, wr_tr, wr_cs): Likewise. * sysdump.c (fillup): Return zero on getc or fread EOF. Return count read.
Diffstat (limited to 'binutils/sysdump.c')
-rw-r--r--binutils/sysdump.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/binutils/sysdump.c b/binutils/sysdump.c
index 6b3fbdaec0..8387e711f8 100644
--- a/binutils/sysdump.c
+++ b/binutils/sysdump.c
@@ -119,8 +119,15 @@ fillup (unsigned char *ptr)
int sum;
int i;
- size = getc (file) - 2;
- fread (ptr, 1, size, file);
+ size = getc (file);
+ if (size == EOF
+ || size <= 2)
+ return 0;
+
+ size -= 2;
+ if (fread (ptr, size, 1, file) != 1)
+ return 0;
+
sum = code + size + 2;
for (i = 0; i < size; i++)
@@ -132,7 +139,7 @@ fillup (unsigned char *ptr)
if (dump)
dh (ptr, size);
- return size - 1;
+ return size;
}
static barray