diff options
| -rw-r--r-- | init/initramfs.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/init/initramfs.c b/init/initramfs.c index 4c00edc59689..b37d34beb90b 100644 --- a/init/initramfs.c +++ b/init/initramfs.c | |||
| @@ -413,7 +413,7 @@ static unsigned my_inptr; /* index of next byte to be processed in inbuf */ | |||
| 413 | 413 | ||
| 414 | static char * __init unpack_to_rootfs(char *buf, unsigned len) | 414 | static char * __init unpack_to_rootfs(char *buf, unsigned len) |
| 415 | { | 415 | { |
| 416 | int written; | 416 | int written, res; |
| 417 | decompress_fn decompress; | 417 | decompress_fn decompress; |
| 418 | const char *compress_name; | 418 | const char *compress_name; |
| 419 | static __initdata char msg_buf[64]; | 419 | static __initdata char msg_buf[64]; |
| @@ -445,10 +445,12 @@ static char * __init unpack_to_rootfs(char *buf, unsigned len) | |||
| 445 | } | 445 | } |
| 446 | this_header = 0; | 446 | this_header = 0; |
| 447 | decompress = decompress_method(buf, len, &compress_name); | 447 | decompress = decompress_method(buf, len, &compress_name); |
| 448 | if (decompress) | 448 | if (decompress) { |
| 449 | decompress(buf, len, NULL, flush_buffer, NULL, | 449 | res = decompress(buf, len, NULL, flush_buffer, NULL, |
| 450 | &my_inptr, error); | 450 | &my_inptr, error); |
| 451 | else if (compress_name) { | 451 | if (res) |
| 452 | error("decompressor failed"); | ||
| 453 | } else if (compress_name) { | ||
| 452 | if (!message) { | 454 | if (!message) { |
| 453 | snprintf(msg_buf, sizeof msg_buf, | 455 | snprintf(msg_buf, sizeof msg_buf, |
| 454 | "compression method %s not configured", | 456 | "compression method %s not configured", |
