From f44680e51f75097806d4f445fb4018ab2c00ef38 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 15 Oct 2007 02:00:56 +0000 Subject: * 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. --- binutils/sysdump.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'binutils/sysdump.c') 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 -- cgit v1.2.1