Re: [PATCH V2] netdump: fix regression for tiny kdump files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Qianli,

-----Original Message-----
> From: Qianli Zhao <zhaoqianli@xxxxxxxxxx>
> 
> 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.

I've not touched a RAM dumpfile, but apparently crash generates a small
temporary ELF header file from the dumpfile if without -o option and
passes it to is_kdump(), then fails.  So I'll replace the above with
"... which can lead to crash rejecting raw RAM dumpfiles" according to
the wording of the crash man page.

Anyway, thank you for catching this.  Please wait for another ack.

Acked-by: Kazuhito Hagio <k-hagio-ab@xxxxxxx>

Thanks,
Kazu


> 
> Fix that by erroring out only if we get less than
> MIN_NETDUMP_ELF_HEADER_SIZE bytes.
> 
> Signed-off-by: Qianli Zhao <zhaoqianli@xxxxxxxxxx>
> ---
> - 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;
>  		}
>  	}
> 
> --
> 2.7.4
> 
> --
> Crash-utility mailing list
> Crash-utility@xxxxxxxxxx
> https://www.redhat.com/mailman/listinfo/crash-utility


--
Crash-utility mailing list
Crash-utility@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/crash-utility




[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux