# HG changeset patch # User Pascal Bellard # Date 1422632063 -3600 # Node ID 1c2114316b6a29b80badf99764af23a2c201321e # Parent dfef8de3d270ab352a9967f2b267579ea656cc1c glibc: CVE-2015-0235 fix (again) diff -r dfef8de3d270 -r 1c2114316b6a enna/receipt --- a/enna/receipt Fri Jan 30 10:17:37 2015 +0100 +++ b/enna/receipt Fri Jan 30 16:34:23 2015 +0100 @@ -90,7 +90,7 @@ post_install() { - for f in $(find /usr/lib/ -name "*ver-svn-05*" ! -path */enlightenment/*); do - ln -s $f $(echo $f|sed s/-05/-03/); + for f in $(cd $1/ ; find usr/lib/ -name "*ver-svn-05*" ! -path */enlightenment/*); do + ln -s /$f /$(echo $f|sed s/-05/-03/); done } diff -r dfef8de3d270 -r 1c2114316b6a glibc/stuff/glibc-2.14.1-CVE-2015-0235.patch --- a/glibc/stuff/glibc-2.14.1-CVE-2015-0235.patch Fri Jan 30 10:17:37 2015 +0100 +++ b/glibc/stuff/glibc-2.14.1-CVE-2015-0235.patch Fri Jan 30 16:34:23 2015 +0100 @@ -14,7 +14,15 @@ return -1; } -@@ -90,8 +93,9 @@ +@@ -84,14 +87,16 @@ + } + + size_needed = (sizeof (*host_addr) +- + sizeof (*h_addr_ptrs) + strlen (name) + 1); ++ + sizeof (*h_addr_ptrs) ++ + sizeof (*h_alias_ptr) + strlen (name) + 1); + + if (buffer_size == NULL) { if (buflen < size_needed) { @@ -25,7 +33,7 @@ __set_errno (ERANGE); goto done; } -@@ -110,7 +114,7 @@ +@@ -110,7 +115,7 @@ *buffer_size = 0; __set_errno (save); if (h_errnop != NULL) @@ -34,7 +42,7 @@ *result = NULL; goto done; } -@@ -150,7 +154,9 @@ +@@ -150,7 +155,9 @@ if (! ok) { *h_errnop = HOST_NOT_FOUND; @@ -45,7 +53,7 @@ *result = NULL; goto done; } -@@ -202,15 +208,6 @@ +@@ -202,15 +209,6 @@ if ((isxdigit (name[0]) && strchr (name, ':') != NULL) || name[0] == ':') { @@ -61,7 +69,7 @@ switch (af) { default: -@@ -226,7 +223,10 @@ +@@ -226,7 +224,10 @@ /* This is not possible. We cannot represent an IPv6 address in an `struct in_addr' variable. */ *h_errnop = HOST_NOT_FOUND; @@ -73,7 +81,7 @@ goto done; case AF_INET6: -@@ -234,42 +234,6 @@ +@@ -234,42 +235,6 @@ break; } @@ -116,7 +124,7 @@ for (cp = name;; ++cp) { if (!*cp) -@@ -282,7 +246,9 @@ +@@ -282,7 +247,9 @@ if (inet_pton (AF_INET6, name, host_addr) <= 0) { *h_errnop = HOST_NOT_FOUND; @@ -127,3 +135,15 @@ *result = NULL; goto done; } +--- glibc-2.14.1/nss/getXXbyYY_r.c ++++ glibc-2.14.1/nss/getXXbyYY_r.c +@@ -180,6 +180,9 @@ + case -1: + return errno; + case 1: ++#ifdef NEED_H_ERRNO ++ any_service = true; ++#endif + goto done; + } + #endif