author | Jiri Sasek <Jiri.Sasek@Oracle.COM> |
Tue, 20 Jan 2015 05:42:59 -0800 | |
branch | s11u2-sru6-backport |
changeset 3708 | 81bf94d26dc3 |
permissions | -rw-r--r-- |
3708
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
1 |
Source: |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
2 |
https://bugzilla.redhat.com/show_bug.cgi?id=1174851 |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
3 |
Info: |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
4 |
http://www.ocert.org/advisories/ocert-2014-011.html |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
5 |
|
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
6 |
--- a/extract.c 2009-03-14 02:32:52.000000000 +0100 |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
7 |
+++ b/extract.c 2014-12-05 22:43:13.000000000 +0100 |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
8 |
@@ -2221,10 +2234,17 @@ static int test_compr_eb(__G__ eb, eb_si |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
9 |
if (compr_offset < 4) /* field is not compressed: */ |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
10 |
return PK_OK; /* do nothing and signal OK */ |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
11 |
|
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
12 |
+ /* Return no/bad-data error status if any problem is found: |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
13 |
+ * 1. eb_size is too small to hold the uncompressed size |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
14 |
+ * (eb_ucsize). (Else extract eb_ucsize.) |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
15 |
+ * 2. eb_ucsize is zero (invalid). 2014-12-04 SMS. |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
16 |
+ * 3. eb_ucsize is positive, but eb_size is too small to hold |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
17 |
+ * the compressed data header. |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
18 |
+ */ |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
19 |
if ((eb_size < (EB_UCSIZE_P + 4)) || |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
20 |
- ((eb_ucsize = makelong(eb+(EB_HEADSIZE+EB_UCSIZE_P))) > 0L && |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
21 |
- eb_size <= (compr_offset + EB_CMPRHEADLEN))) |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
22 |
- return IZ_EF_TRUNC; /* no compressed data! */ |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
23 |
+ ((eb_ucsize = makelong( eb+ (EB_HEADSIZE+ EB_UCSIZE_P))) == 0L) || |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
24 |
+ ((eb_ucsize > 0L) && (eb_size <= (compr_offset + EB_CMPRHEADLEN)))) |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
25 |
+ return IZ_EF_TRUNC; /* no/bad compressed data! */ |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
26 |
|
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
27 |
if ( |
81bf94d26dc3
20298643 problem in UTILITY/ZIP
Jiri Sasek <Jiri.Sasek@Oracle.COM>
parents:
diff
changeset
|
28 |
#ifdef INT_16BIT |