Am 01.12.20 um 03:56 schrieb Qianli Zhao:
 From: Qianli Zhao <zhaoqianli(a)xiaomi.com>
 
 Commit f42db6a33f0e ("Support core files with "unusual" layout")
 increased the minimal file size from MIN_NETDUMP_ELF_HEADER_SIZE to
 SAFE_NETDUMP_ELF_HEADER_SIZE which lead to crash rejecting very
 small kdump files.
 
 Fix that by erroring out only if we get less than
 MIN_NETDUMP_ELF_HEADER_SIZE bytes.
 
 Signed-off-by: Qianli Zhao <zhaoqianli(a)xiaomi.com>
 ---
 - Update commit message
 - Add more accurate judgment of read() return value
 ---
  netdump.c | 9 +++++++--
  1 file changed, 7 insertions(+), 2 deletions(-)
 
 diff --git a/netdump.c b/netdump.c
 index c76d9dd..9a36931 100644
 --- a/netdump.c
 +++ b/netdump.c
 @@ -119,7 +119,8 @@ is_netdump(char *file, ulong source_query)
  	Elf64_Phdr *load64;
  	char *eheader, *sect0;
  	char buf[BUFSIZE];
 -	size_t size, len, tot;
 +	ssize_t size;
 +	size_t len, tot;
          Elf32_Off offset32;
          Elf64_Off offset64;
  	ulong format;
 @@ -142,10 +143,14 @@ is_netdump(char *file, ulong source_query)
  		if (!read_flattened_format(fd, 0, eheader, size))
  			goto bailout;
  	} else {
 -		if (read(fd, eheader, size) != size) {
 +		size = read(fd, eheader, size);
 +		if (size < 0) {
  			sprintf(buf, "%s: ELF header read", file);
  			perror(buf);
  			goto bailout;
 +		} else if (size < MIN_NETDUMP_ELF_HEADER_SIZE) {
 +			fprintf(stderr, "%s: file too small!\n", file);
 +			goto bailout;
  		}
  	}
  
  
Looks good to me, thanks!
Acked-and-tested-by: Mathias Krause <minipli(a)grsecurity.net>