Magellan Linux

Contents of /trunk/busybox/patches/busybox-1.19.0-uncompress.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1519 - (show annotations) (download)
Mon Sep 5 21:52:12 2011 UTC (12 years, 8 months ago) by niro
File size: 1513 byte(s)
-added upstream patches
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)
4
5 if (insize < (int) (IBUFSIZ + 64) - IBUFSIZ) {
6 rsize = safe_read(fd_in, inbuf + insize, IBUFSIZ);
7 -//error check??
8 + if (rsize < 0)
9 + bb_error_msg_and_die(bb_msg_read_error);
10 insize += rsize;
11 }
12
13 @@ -195,6 +196,8 @@ unpack_Z_stream(int fd_in, int fd_out)
14
15
16 if (oldcode == -1) {
17 + if (code >= 256)
18 + bb_error_msg_and_die("corrupted data"); /* %ld", code); */
19 oldcode = 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)
23
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);
30 }
31 @@ -263,8 +268,7 @@ unpack_Z_stream(int fd_in, int fd_out)
32 }
33
34 if (outpos >= OBUFSIZ) {
35 - full_write(fd_out, outbuf, outpos);
36 -//error check??
37 + xwrite(fd_out, outbuf, outpos);
38 IF_DESKTOP(total_written += outpos;)
39 outpos = 0;
40 }
41 @@ -292,8 +296,7 @@ unpack_Z_stream(int fd_in, int fd_out)
42 } while (rsize > 0);
43
44 if (outpos > 0) {
45 - full_write(fd_out, outbuf, outpos);
46 -//error check??
47 + xwrite(fd_out, outbuf, outpos);
48 IF_DESKTOP(total_written += outpos;)
49 }
50