aboutsummaryrefslogtreecommitdiff
path: root/archival
diff options
context:
space:
mode:
Diffstat (limited to 'archival')
-rw-r--r--archival/bzip2.c4
-rw-r--r--archival/libunarchive/decompress_unxz.c2
-rw-r--r--archival/libunarchive/decompress_unzip.c2
-rw-r--r--archival/rpm2cpio.c19
4 files changed, 16 insertions, 11 deletions
diff --git a/archival/bzip2.c b/archival/bzip2.c
index f1c84d681..fdb8b9306 100644
--- a/archival/bzip2.c
+++ b/archival/bzip2.c
@@ -88,7 +88,7 @@ IF_DESKTOP(long long) int bz_write(bz_stream *strm, void* rbuf, ssize_t rlen, vo
88 if (n2 != n) { 88 if (n2 != n) {
89 if (n2 >= 0) 89 if (n2 >= 0)
90 errno = 0; /* prevent bogus error message */ 90 errno = 0; /* prevent bogus error message */
91 bb_perror_msg(n2 >= 0 ? "short write" : "write error"); 91 bb_perror_msg(n2 >= 0 ? "short write" : bb_msg_write_error);
92 return -1; 92 return -1;
93 } 93 }
94 } 94 }
@@ -118,7 +118,7 @@ IF_DESKTOP(long long) int FAST_FUNC compressStream(unpack_info_t *info UNUSED_PA
118 while (1) { 118 while (1) {
119 count = full_read(STDIN_FILENO, rbuf, IOBUF_SIZE); 119 count = full_read(STDIN_FILENO, rbuf, IOBUF_SIZE);
120 if (count < 0) { 120 if (count < 0) {
121 bb_perror_msg("read error"); 121 bb_perror_msg(bb_msg_read_error);
122 total = -1; 122 total = -1;
123 break; 123 break;
124 } 124 }
diff --git a/archival/libunarchive/decompress_unxz.c b/archival/libunarchive/decompress_unxz.c
index 3f9392984..1302e29fb 100644
--- a/archival/libunarchive/decompress_unxz.c
+++ b/archival/libunarchive/decompress_unxz.c
@@ -86,7 +86,7 @@ unpack_xz_stream(int src_fd, int dst_fd)
86 if (rd) { 86 if (rd) {
87 rd = safe_read(src_fd, membuf + insz, rd); 87 rd = safe_read(src_fd, membuf + insz, rd);
88 if (rd < 0) { 88 if (rd < 0) {
89 bb_error_msg("read error"); 89 bb_error_msg(bb_msg_read_error);
90 total = -1; 90 total = -1;
91 break; 91 break;
92 } 92 }
diff --git a/archival/libunarchive/decompress_unzip.c b/archival/libunarchive/decompress_unzip.c
index 33e877ec8..bccd0262e 100644
--- a/archival/libunarchive/decompress_unzip.c
+++ b/archival/libunarchive/decompress_unzip.c
@@ -1072,7 +1072,7 @@ static int top_up(STATE_PARAM unsigned n)
1072 bytebuffer_offset = 0; 1072 bytebuffer_offset = 0;
1073 bytebuffer_size = full_read(gunzip_src_fd, &bytebuffer[count], bytebuffer_max - count); 1073 bytebuffer_size = full_read(gunzip_src_fd, &bytebuffer[count], bytebuffer_max - count);
1074 if ((int)bytebuffer_size < 0) { 1074 if ((int)bytebuffer_size < 0) {
1075 bb_error_msg("read error"); 1075 bb_error_msg(bb_msg_read_error);
1076 return 0; 1076 return 0;
1077 } 1077 }
1078 bytebuffer_size += count; 1078 bytebuffer_size += count;
diff --git a/archival/rpm2cpio.c b/archival/rpm2cpio.c
index 598ec8670..1c67dcc6e 100644
--- a/archival/rpm2cpio.c
+++ b/archival/rpm2cpio.c
@@ -68,26 +68,31 @@ int rpm2cpio_main(int argc UNUSED_PARAM, char **argv)
68#else 68#else
69 /* BLOAT */ 69 /* BLOAT */
70 { 70 {
71 unsigned char magic[8]; 71 union {
72 uint8_t b[4];
73 uint16_t b16[2];
74 uint32_t b32[1];
75 } magic;
72 IF_DESKTOP(long long) int FAST_FUNC (*unpack)(int src_fd, int dst_fd); 76 IF_DESKTOP(long long) int FAST_FUNC (*unpack)(int src_fd, int dst_fd);
73 77
74 xread(rpm_fd, &magic, 2); 78 xread(rpm_fd, magic.b16, sizeof(magic.b16));
75 if (magic[0] == 0x1f && magic[1] == 0x8b) { 79 if (magic.b16[0] == GZIP_MAGIC) {
76 unpack = unpack_gz_stream; 80 unpack = unpack_gz_stream;
77 } else 81 } else
78 if (ENABLE_FEATURE_SEAMLESS_BZ2 82 if (ENABLE_FEATURE_SEAMLESS_BZ2
79 && magic[0] == 'B' && magic[1] == 'Z' 83 && magic.b16[0] == BZIP2_MAGIC
80 ) { 84 ) {
81 unpack = unpack_bz2_stream; 85 unpack = unpack_bz2_stream;
82 } else 86 } else
83 if (ENABLE_FEATURE_SEAMLESS_XZ 87 if (ENABLE_FEATURE_SEAMLESS_XZ
84 && magic[0] == 0xfd && magic[1] == '7' 88 && magic.b16[0] == XZ_MAGIC1
85 ) { 89 ) {
86 /* .xz signature: 0xfd, '7', 'z', 'X', 'Z', 0x00 */ 90 /* .xz signature: 0xfd, '7', 'z', 'X', 'Z', 0x00 */
87 /* More info at: http://tukaani.org/xz/xz-file-format.txt */ 91 /* More info at: http://tukaani.org/xz/xz-file-format.txt */
88 xread(rpm_fd, magic + 2, 4); 92 xread(rpm_fd, magic.b32, sizeof(magic.b32));
89 if (strcmp((char*)magic + 2, "zXZ") != 0) 93 if (magic.b32[0] != XZ_MAGIC2)
90 goto no_magic; 94 goto no_magic;
95 /* unpack_xz_stream wants fd at position 0 */
91 xlseek(rpm_fd, -6, SEEK_CUR); 96 xlseek(rpm_fd, -6, SEEK_CUR);
92 unpack = unpack_xz_stream; 97 unpack = unpack_xz_stream;
93 } else { 98 } else {