commit:     88af79cd9bee910ef20561f3bc2872c61ccf4452
Author:     Yuta SATOH <nigoro <AT> gentoo <DOT> gr <DOT> jp>
AuthorDate: Thu Jul  3 15:09:33 2014 +0000
Commit:     Yuta SATOH <nigoro.gentoo <AT> 0x100 <DOT> com>
CommitDate: Thu Jul  3 15:09:33 2014 +0000
URL:        
http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-bsd.git;a=commit;h=88af79cd

freebsd-lib-10.0.0.9999-r1: security fix CVE-2014-3951

---
 sys-freebsd/freebsd-lib/Manifest                   |   3 +-
 .../files/freebsd-lib-10.0-cve-2014-3951.patch     | 175 +++++++++++++++++++++
 ...99.ebuild => freebsd-lib-10.0.0.9999-r1.ebuild} |   1 +
 3 files changed, 178 insertions(+), 1 deletion(-)

diff --git a/sys-freebsd/freebsd-lib/Manifest b/sys-freebsd/freebsd-lib/Manifest
index 51eb8c0..27ef4e5 100644
--- a/sys-freebsd/freebsd-lib/Manifest
+++ b/sys-freebsd/freebsd-lib/Manifest
@@ -1,5 +1,6 @@
 AUX freebsd-lib-10.0-atfcxx.patch 1545 SHA256 
eef9680da13fb24adc01fab170d83787e8b9926ec2bbb89cd7933b3dd8b35306 SHA512 
37d8fc83b97addef48807196738be511fdc74b002dce321c2eaf38db5b618ff4a2f8e8447677c60b96b8add8f1dc586a66a30992289fa95e20e2005589e83953
 WHIRLPOOL 
78096c4064b98cbb05617355c8c65c306f9d6ceb2a2c8f772cf39f20c81395da9a2d1e128f5b1382bdd65d7e6d7df2d08606933ac5fa8a9aa3d55ec8b76363e2
 AUX freebsd-lib-10.0-clang34.patch 939 SHA256 
c8755730fb0cf7bd7d7deed870550a36cada5dadef06390b8dabba824129af4e SHA512 
5252167e5d938edf43fb71eb3bb41f87844809abe230efc88f9697bb1f69388e6cc71a9682fb89db1cd6ad45a8987df9eb251444f638eaaa750640ab3bcc9ae8
 WHIRLPOOL 
e68346ae50163021c72a0baa234cda74020796aa4e6375ba60342e83ee8127944ad82c71306c967a8548c2e0a4ace13be08349866d0833167e5477dd02c855e0
+AUX freebsd-lib-10.0-cve-2014-3951.patch 5795 SHA256 
0babc677e0af00828a3203fb55e05c23d46a7c5e56179d187d9753f38dd87849 SHA512 
27c08aacc0e33f80ea6164bdd29acd6134393c002a6e544ce2b2d5893b24766dbed96e2b7216ef714f5f77fd197e93dac6ef2f909272483aa3ecdafaa5f0e42c
 WHIRLPOOL 
188c0fd6880353c78985e76fe59626dfaa366159e67aeaa9b170331aad5394a5e1dad959b9cb3cb572e79d41b4660ab97f78067410cba10eefd15ece04cbf498
 AUX freebsd-lib-10.0-libiconv_modules.patch 645 SHA256 
eeaf5e8dd482935982f4c232c227eadae4258e63a8dd9631cb59140ec21cbe08 SHA512 
6d07c28a92985a8de517bd0eee5bf4a9ca60eee214c7111cda74d2eb6b2cfac1105b2673b09f64d9da2e54ecddf77bc27890a42a4d4f79243778f14fed8a4fdd
 WHIRLPOOL 
27383421a4a7ee3c275db4f82ccedd3004c24d1ef5408db31f5647a06c8d31dc47b0ad3d3a202b8598676229953854656c8bc9f74febc76792dd085894c8d31b
 AUX freebsd-lib-10.0-liblink.patch 2448 SHA256 
cbdcca5cc893b0d0b1ff98d1c1046519cebe9877b4cddd180340cfafbbbd2726 SHA512 
c77049fa170d08d6ce035a8b9ae799f6d8e0b899371c1644a7493543fc07511515f68d54c82c618064954e48023c09bfcff452bd93e69ac07b7f8c6fc0e5089d
 WHIRLPOOL 
12a22aeb74491960bf12da6d0db67504f1f804e732d332fd607cf58a78f0fc291af7d6a3d9f65744fedc36daa9326b463b2ebbe545d88deccc29135b6be60dbf
 AUX freebsd-lib-10.0-libproc-libcxx.patch 393 SHA256 
da065c458716e8a56a3c3aab87c9e5135287d6c8fa46eb26092c197e167b7acd SHA512 
086d71467dcaccefdb2d9d31deab1905407aadca625853ff222610ea713e80dd8dd61caae3765107045b376f4162f73d12407d1d27aad29603b45b108c09cd8f
 WHIRLPOOL 
3bed09ac5887736dcb15583b4d6cde50419d156bc12f1e1a55668ed85bfb0f502c79c760e8cde3db7172b72775786bb8968df811980ad046c677ff0aff176b33
@@ -25,5 +26,5 @@ AUX freebsd-sources-9.0-sysctluint.patch 403 SHA256 
884fbc5d6d3766ea3d4609946f56
 AUX libmap.conf 201 SHA256 
36a1bd56965f171cbb058f6e1762801e3b92c083fe36f6fe046bd669beed9742 SHA512 
abc358dff495fe96b9ed549bacb5278577ca4da46b89b87e9211a2f6acdd455111df02ba11b797287f839af6cc22f8810e8ac1dc52154acc8b22364e667b3c49
 WHIRLPOOL 
0827a0ea9b8a2faed019d13356a793b2b572e54d6f8ebf32a9f12214759153433e21f7d8fdedf43e038ac1925432c1f4843441db47d29895eda51781f1fedb5e
 AUX libusb-1.0.pc.in 207 SHA256 
edf35e887cbfed2df288825434c467e0a946eeb21e0d631f55940bb177c2ba15 SHA512 
93289cecfc298a31fd4fd0848bf25a63048a7549bd81792d7bd158731246221c24ec9f469a918430da56873a0936fb2b372cedaaa32a38ccd5323de0f9a89b93
 WHIRLPOOL 
7c81b0df4548a9391b4e1420186f1e970aa9e2e73a89e817adbff9de52b8797cbd8a4d8b3ca01f782f86e4b1e48fad72a08b5bff49d5ee6ffaa5135c015ca5ae
 AUX libusb.pc.in 208 SHA256 
9bfe398a335f8b9b1c3dd167ab0c9206fe3bdd4e1da318ece977e20f3c2d7c56 SHA512 
e9c6d5f04057cf8c13f69a3d8e07bdd517fdb01d572a69a1beb397766311b3c53894b108caaaea740bfc27b227a9620621dac5846bff1a367fbf9954f38bb40c
 WHIRLPOOL 
e80e76a8a564655d924a7148a841c7c7cf0be0ea3bdbd76e95e5004124543826e5d925dfe791f4b040e042a10923865bb517499d9f5be39611fedbcceebe32d8
-EBUILD freebsd-lib-10.0.0.9999.ebuild 19158 SHA256 
7cceb08cea700054e4113cf9e97981a0583e394bf8279b80acd58e6fdcdbb6b6 SHA512 
fbdd1cdbc5fcce047d30b0de835e4803d3205294f244a71ed4943d4e5f8ea71c6ede423666705860efec12d3a9a7ee54c36c1b2fc9e9a3066a4af5966b32b563
 WHIRLPOOL 
e3dfa5e2b4bb7b292ac11347c9a5df3f7cf13f7baa63211acf2ab74e7bd663a08ad12381572e95c7e000ef4156a0b68f988dd9816869c953329d4c93e17ea248
+EBUILD freebsd-lib-10.0.0.9999-r1.ebuild 19204 SHA256 
db7fff3f5795385173fab86fb5025d5f8ebdb98b63a70c6b3623db7d8d37a1a4 SHA512 
bb22114d0a09d47057c40ceaa2ddfefb99b02af45ed5a2ace82890160ce4d1b1959282e2664fedd79f48598f3341587cd0fb6d690289f8f332eda224a9c18a01
 WHIRLPOOL 
60a0755c5cb550308eeef4017b19e6c8dcec015d4afc87caeb8b63c7b2f6514e5d2c78b2d75dceaa264b3c19c7e92db882207129fc7e7a76e188e34a57934895
 EBUILD freebsd-lib-9.9999_p266864.ebuild 18221 SHA256 
c45e817337cfead70472d5f9520ffaf1d635fb6db5004af4f45c96b5c4cfdb02 SHA512 
996b157741fce88ee78389ce1220c681dc408296cc1e075435a6f120c0efaa1a306e494408ecb1ad95ca88f11dd086e620c650d5250a084c020ef2d064694d0b
 WHIRLPOOL 
754621d3194e2f400a6b7c59c4d612becb32fb1a41e57686477b3f7fc5a4b935063634eae68b2904ca225b07306c9dbbf6d79cfc337b9fbc4f47f0896591e39a

diff --git a/sys-freebsd/freebsd-lib/files/freebsd-lib-10.0-cve-2014-3951.patch 
b/sys-freebsd/freebsd-lib/files/freebsd-lib-10.0-cve-2014-3951.patch
new file mode 100644
index 0000000..5ac0ac8
--- /dev/null
+++ b/sys-freebsd/freebsd-lib/files/freebsd-lib-10.0-cve-2014-3951.patch
@@ -0,0 +1,175 @@
+Index: lib/libc/iconv/citrus_prop.c
+===================================================================
+--- lib/libc/iconv/citrus_prop.c       (revision 267591)
++++ lib/libc/iconv/citrus_prop.c       (working copy)
+@@ -339,7 +339,7 @@ name_found:
+ 
+ static int
+ _citrus_prop_parse_element(struct _memstream * __restrict ms,
+-    const _citrus_prop_hint_t * __restrict hints, void ** __restrict context)
++    const _citrus_prop_hint_t * __restrict hints, void * __restrict context)
+ {
+       int ch, errnum;
+ #define _CITRUS_PROP_HINT_NAME_LEN_MAX        255
+@@ -435,8 +435,7 @@ _citrus_prop_parse_variable(const _citrus_prop_hin
+               if (ch == EOF || ch == '\0')
+                       break;
+               _memstream_ungetc(&ms, ch);
+-              errnum = _citrus_prop_parse_element(
+-                  &ms, hints, (void ** __restrict)context);
++              errnum = _citrus_prop_parse_element(&ms, hints, context);
+               if (errnum != 0)
+                       return (errnum);
+       }
+Index: lib/libc/iconv/citrus_prop.h
+===================================================================
+--- lib/libc/iconv/citrus_prop.h       (revision 267591)
++++ lib/libc/iconv/citrus_prop.h       (working copy)
+@@ -42,7 +42,7 @@ typedef struct _citrus_prop_hint_t _citrus_prop_hi
+ 
+ #define _CITRUS_PROP_CB0_T(_func_, _type_) \
+ typedef int (*_citrus_prop_##_func_##_cb_func_t) \
+-    (void ** __restrict, const char *, _type_); \
++    (void * __restrict, const char *, _type_); \
+ typedef struct { \
+       _citrus_prop_##_func_##_cb_func_t func; \
+ } _citrus_prop_##_func_##_cb_t;
+@@ -52,7 +52,7 @@ _CITRUS_PROP_CB0_T(str, const char *)
+ 
+ #define _CITRUS_PROP_CB1_T(_func_, _type_) \
+ typedef int (*_citrus_prop_##_func_##_cb_func_t) \
+-    (void ** __restrict, const char *, _type_, _type_); \
++    (void * __restrict, const char *, _type_, _type_); \
+ typedef struct { \
+       _citrus_prop_##_func_##_cb_func_t func; \
+ } _citrus_prop_##_func_##_cb_t;
+Index: lib/libiconv_modules/BIG5/citrus_big5.c
+===================================================================
+--- lib/libiconv_modules/BIG5/citrus_big5.c    (revision 267591)
++++ lib/libiconv_modules/BIG5/citrus_big5.c    (working copy)
+@@ -170,7 +170,7 @@ _citrus_BIG5_check_excludes(_BIG5EncodingInfo *ei,
+ }
+ 
+ static int
+-_citrus_BIG5_fill_rowcol(void ** __restrict ctx, const char * __restrict s,
++_citrus_BIG5_fill_rowcol(void * __restrict ctx, const char * __restrict s,
+     uint64_t start, uint64_t end)
+ {
+       _BIG5EncodingInfo *ei;
+@@ -189,7 +189,7 @@ static int
+ 
+ static int
+ /*ARGSUSED*/
+-_citrus_BIG5_fill_excludes(void ** __restrict ctx,
++_citrus_BIG5_fill_excludes(void * __restrict ctx,
+     const char * __restrict s __unused, uint64_t start, uint64_t end)
+ {
+       _BIG5EncodingInfo *ei;
+@@ -235,7 +235,6 @@ static int
+ _citrus_BIG5_encoding_module_init(_BIG5EncodingInfo * __restrict ei,
+     const void * __restrict var, size_t lenvar)
+ {
+-      void *ctx = (void *)ei;
+       const char *s;
+       int err;
+ 
+@@ -257,9 +256,9 @@ _citrus_BIG5_encoding_module_init(_BIG5EncodingInf
+       }
+ 
+       /* fallback Big5-1984, for backward compatibility. */
+-      _citrus_BIG5_fill_rowcol((void **)&ctx, "row", 0xA1, 0xFE);
+-      _citrus_BIG5_fill_rowcol((void **)&ctx, "col", 0x40, 0x7E);
+-      _citrus_BIG5_fill_rowcol((void **)&ctx, "col", 0xA1, 0xFE);
++      _citrus_BIG5_fill_rowcol(ei, "row", 0xA1, 0xFE);
++      _citrus_BIG5_fill_rowcol(ei, "col", 0x40, 0x7E);
++      _citrus_BIG5_fill_rowcol(ei, "col", 0xA1, 0xFE);
+ 
+       return (0);
+ }
+Index: lib/libiconv_modules/HZ/citrus_hz.c
+===================================================================
+--- lib/libiconv_modules/HZ/citrus_hz.c        (revision 267591)
++++ lib/libiconv_modules/HZ/citrus_hz.c        (working copy)
+@@ -65,8 +65,8 @@ typedef enum {
+ } charset_t;
+ 
+ typedef struct {
++      int      start;
+       int      end;
+-      int      start;
+       int      width;
+ } range_t;
+ 
+@@ -503,12 +503,12 @@ _citrus_HZ_encoding_module_uninit(_HZEncodingInfo
+ }
+ 
+ static int
+-_citrus_HZ_parse_char(void **context, const char *name __unused, const char 
*s)
++_citrus_HZ_parse_char(void *context, const char *name __unused, const char *s)
+ {
+       escape_t *escape;
+       void **p;
+ 
+-      p = (void **)*context;
++      p = (void **)context;
+       escape = (escape_t *)p[0];
+       if (escape->ch != '\0')
+               return (EINVAL);
+@@ -520,7 +520,7 @@ static int
+ }
+ 
+ static int
+-_citrus_HZ_parse_graphic(void **context, const char *name, const char *s)
++_citrus_HZ_parse_graphic(void *context, const char *name, const char *s)
+ {
+       _HZEncodingInfo *ei;
+       escape_t *escape;
+@@ -527,7 +527,7 @@ static int
+       graphic_t *graphic;
+       void **p;
+ 
+-      p = (void **)*context;
++      p = (void **)context;
+       escape = (escape_t *)p[0];
+       ei = (_HZEncodingInfo *)p[1];
+       graphic = malloc(sizeof(*graphic));
+@@ -589,13 +589,13 @@ _CITRUS_PROP_HINT_END
+ };
+ 
+ static int
+-_citrus_HZ_parse_escape(void **context, const char *name, const char *s)
++_citrus_HZ_parse_escape(void *context, const char *name, const char *s)
+ {
+       _HZEncodingInfo *ei;
+       escape_t *escape;
+       void *p[2];
+ 
+-      ei = (_HZEncodingInfo *)*context;
++      ei = (_HZEncodingInfo *)context;
+       escape = malloc(sizeof(*escape));
+       if (escape == NULL)
+               return (EINVAL);
+Index: lib/libiconv_modules/VIQR/citrus_viqr.c
+===================================================================
+--- lib/libiconv_modules/VIQR/citrus_viqr.c    (revision 267591)
++++ lib/libiconv_modules/VIQR/citrus_viqr.c    (working copy)
+@@ -431,7 +431,6 @@ static int
+ _citrus_VIQR_encoding_module_init(_VIQREncodingInfo * __restrict ei,
+     const void * __restrict var __unused, size_t lenvar __unused)
+ {
+-      const mnemonic_def_t *p;
+       const char *s;
+       size_t i, n;
+       int errnum;
+@@ -455,7 +454,10 @@ _citrus_VIQR_encoding_module_init(_VIQREncodingInf
+                       return (errnum);
+               }
+       }
+-      for (i = 0;; ++i) {
++      /* a + 1 < b + 1 here to silence gcc warning about unsigned < 0. */
++      for (i = 0; i + 1 < mnemonic_ext_size + 1; ++i) {
++              const mnemonic_def_t *p;
++
+               p = &mnemonic_ext[i];
+               n = strlen(p->name);
+               if (ei->mb_cur_max < n)

diff --git a/sys-freebsd/freebsd-lib/freebsd-lib-10.0.0.9999.ebuild 
b/sys-freebsd/freebsd-lib/freebsd-lib-10.0.0.9999-r1.ebuild
similarity index 99%
rename from sys-freebsd/freebsd-lib/freebsd-lib-10.0.0.9999.ebuild
rename to sys-freebsd/freebsd-lib/freebsd-lib-10.0.0.9999-r1.ebuild
index fb61177..8cb0dfa 100644
--- a/sys-freebsd/freebsd-lib/freebsd-lib-10.0.0.9999.ebuild
+++ b/sys-freebsd/freebsd-lib/freebsd-lib-10.0.0.9999-r1.ebuild
@@ -101,6 +101,7 @@ PATCHES=(
        "${FILESDIR}/${PN}-10.0-libusb.patch"
        "${FILESDIR}/${PN}-10.0-libproc-libcxx.patch"
        "${FILESDIR}/${PN}-10.0-libiconv_modules.patch"
+       "${FILESDIR}/${PN}-10.0-cve-2014-3951.patch"
        "${FILESDIR}/${PN}-bsdxml2expat.patch"
        "${FILESDIR}/${PN}-9.0-bluetooth.patch"
        "${FILESDIR}/${PN}-9.1-.eh_frame_hdr-fix.patch"

Reply via email to