1 --- busybox-1.19.0/archival/libarchive/decompress_uncompress.c
2 +++ busybox-1.19.0-uncompress/archival/libarchive/decompress_uncompress.c
3 @@ -163,7 +163,8 @@ unpack_Z_stream(int fd_in, int fd_out)
5 if (insize < (int) (IBUFSIZ + 64) - IBUFSIZ) {
6 rsize = safe_read(fd_in, inbuf + insize, IBUFSIZ);
9 + bb_error_msg_and_die(bb_msg_read_error);
13 @@ -195,6 +196,8 @@ unpack_Z_stream(int fd_in, int fd_out)
18 + bb_error_msg_and_die("corrupted data"); /* %ld", code); */
20 finchar = (int) oldcode;
21 outbuf[outpos++] = (unsigned char) finchar;
22 @@ -239,6 +242,8 @@ unpack_Z_stream(int fd_in, int fd_out)
24 /* Generate output characters in reverse order */
25 while ((long) code >= (long) 256) {
26 + if (stackp <= &htabof(0))
27 + bb_error_msg_and_die("corrupted data");
28 *--stackp = tab_suffixof(code);
29 code = tab_prefixof(code);
31 @@ -263,8 +268,7 @@ unpack_Z_stream(int fd_in, int fd_out)
34 if (outpos >= OBUFSIZ) {
35 - full_write(fd_out, outbuf, outpos);
37 + xwrite(fd_out, outbuf, outpos);
38 IF_DESKTOP(total_written += outpos;)
41 @@ -292,8 +296,7 @@ unpack_Z_stream(int fd_in, int fd_out)
45 - full_write(fd_out, outbuf, outpos);
47 + xwrite(fd_out, outbuf, outpos);
48 IF_DESKTOP(total_written += outpos;)