wok rev 17553

glibc: CVE-2015-0235 fix (again)
author Pascal Bellard <pascal.bellard@slitaz.org>
date Fri Jan 30 16:34:23 2015 +0100 (2015-01-30)
parents dfef8de3d270
children e71e1d4832ac
files enna/receipt glibc/stuff/glibc-2.14.1-CVE-2015-0235.patch
line diff
     1.1 --- a/enna/receipt	Fri Jan 30 10:17:37 2015 +0100
     1.2 +++ b/enna/receipt	Fri Jan 30 16:34:23 2015 +0100
     1.3 @@ -90,7 +90,7 @@
     1.4  
     1.5  post_install()
     1.6  {
     1.7 -	for f in $(find /usr/lib/ -name "*ver-svn-05*" ! -path */enlightenment/*); do 
     1.8 -		ln -s $f $(echo $f|sed s/-05/-03/); 
     1.9 +	for f in $(cd $1/ ; find usr/lib/ -name "*ver-svn-05*" ! -path */enlightenment/*); do 
    1.10 +		ln -s /$f /$(echo $f|sed s/-05/-03/); 
    1.11  	done	
    1.12  }
     2.1 --- a/glibc/stuff/glibc-2.14.1-CVE-2015-0235.patch	Fri Jan 30 10:17:37 2015 +0100
     2.2 +++ b/glibc/stuff/glibc-2.14.1-CVE-2015-0235.patch	Fri Jan 30 16:34:23 2015 +0100
     2.3 @@ -14,7 +14,15 @@
     2.4         return -1;
     2.5       }
     2.6   
     2.7 -@@ -90,8 +93,9 @@
     2.8 +@@ -84,14 +87,16 @@
     2.9 + 	}
    2.10 + 
    2.11 +       size_needed = (sizeof (*host_addr)
    2.12 +-		     + sizeof (*h_addr_ptrs) + strlen (name) + 1);
    2.13 ++		     + sizeof (*h_addr_ptrs)
    2.14 ++		     + sizeof (*h_alias_ptr) + strlen (name) + 1);
    2.15 + 
    2.16 +       if (buffer_size == NULL)
    2.17           {
    2.18   	  if (buflen < size_needed)
    2.19   	    {
    2.20 @@ -25,7 +33,7 @@
    2.21   	      __set_errno (ERANGE);
    2.22   	      goto done;
    2.23   	    }
    2.24 -@@ -110,7 +114,7 @@
    2.25 +@@ -110,7 +115,7 @@
    2.26   	      *buffer_size = 0;
    2.27   	      __set_errno (save);
    2.28   	      if (h_errnop != NULL)
    2.29 @@ -34,7 +42,7 @@
    2.30   	      *result = NULL;
    2.31   	      goto done;
    2.32   	    }
    2.33 -@@ -150,7 +154,9 @@
    2.34 +@@ -150,7 +155,9 @@
    2.35   		  if (! ok)
    2.36   		    {
    2.37   		      *h_errnop = HOST_NOT_FOUND;
    2.38 @@ -45,7 +53,7 @@
    2.39   			*result = NULL;
    2.40   		      goto done;
    2.41   		    }
    2.42 -@@ -202,15 +208,6 @@
    2.43 +@@ -202,15 +209,6 @@
    2.44   
    2.45         if ((isxdigit (name[0]) && strchr (name, ':') != NULL) || name[0] == ':')
    2.46   	{
    2.47 @@ -61,7 +69,7 @@
    2.48   	  switch (af)
    2.49   	    {
    2.50   	    default:
    2.51 -@@ -226,7 +223,10 @@
    2.52 +@@ -226,7 +224,10 @@
    2.53   	      /* This is not possible.  We cannot represent an IPv6 address
    2.54   		 in an `struct in_addr' variable.  */
    2.55   	      *h_errnop = HOST_NOT_FOUND;
    2.56 @@ -73,7 +81,7 @@
    2.57   	      goto done;
    2.58   
    2.59   	    case AF_INET6:
    2.60 -@@ -234,42 +234,6 @@
    2.61 +@@ -234,42 +235,6 @@
    2.62   	      break;
    2.63   	    }
    2.64   
    2.65 @@ -116,7 +124,7 @@
    2.66   	  for (cp = name;; ++cp)
    2.67   	    {
    2.68   	      if (!*cp)
    2.69 -@@ -282,7 +246,9 @@
    2.70 +@@ -282,7 +247,9 @@
    2.71   		  if (inet_pton (AF_INET6, name, host_addr) <= 0)
    2.72   		    {
    2.73   		      *h_errnop = HOST_NOT_FOUND;
    2.74 @@ -127,3 +135,15 @@
    2.75   			*result = NULL;
    2.76   		      goto done;
    2.77   		    }
    2.78 +--- glibc-2.14.1/nss/getXXbyYY_r.c
    2.79 ++++ glibc-2.14.1/nss/getXXbyYY_r.c
    2.80 +@@ -180,6 +180,9 @@
    2.81 +     case -1:
    2.82 +       return errno;
    2.83 +     case 1:
    2.84 ++#ifdef NEED_H_ERRNO
    2.85 ++      any_service = true;
    2.86 ++#endif
    2.87 +       goto done;
    2.88 +     }
    2.89 + #endif