diff options
Diffstat (limited to 'archival/rpm2cpio.c')
-rw-r--r-- | archival/rpm2cpio.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/archival/rpm2cpio.c b/archival/rpm2cpio.c index e1e93988f..9372dc5e1 100644 --- a/archival/rpm2cpio.c +++ b/archival/rpm2cpio.c | |||
@@ -70,6 +70,7 @@ extern int rpm2cpio_main(int argc, char **argv) | |||
70 | { | 70 | { |
71 | struct rpm_lead lead; | 71 | struct rpm_lead lead; |
72 | int rpm_fd; | 72 | int rpm_fd; |
73 | unsigned char magic[2]; | ||
73 | 74 | ||
74 | if (argc == 1) { | 75 | if (argc == 1) { |
75 | rpm_fd = fileno(stdin); | 76 | rpm_fd = fileno(stdin); |
@@ -88,6 +89,11 @@ extern int rpm2cpio_main(int argc, char **argv) | |||
88 | 89 | ||
89 | /* Skip the main header */ | 90 | /* Skip the main header */ |
90 | skip_header(rpm_fd); | 91 | skip_header(rpm_fd); |
92 | |||
93 | xread_all(rpm_fd, &magic, 2); | ||
94 | if ((magic[0] != 0x1f) || (magic[1] != 0x8b)) | ||
95 | error_msg_and_die("Invalid gzip magic"); | ||
96 | } | ||
91 | 97 | ||
92 | check_header_gzip(rpm_fd); | 98 | check_header_gzip(rpm_fd); |
93 | if (inflate(rpm_fd, fileno(stdout)) != 0) { | 99 | if (inflate(rpm_fd, fileno(stdout)) != 0) { |