patches/glibc/2.1.3/rh62-09-glibc-2.1.3-security2.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Feb 24 11:00:05 2007 +0000 (2007-02-24)
changeset 1 eeea35fbf182
permissions -rw-r--r--
Add the full crosstool-NG sources to the new repository of its own.
You might just say: 'Yeah! crosstool-NG's got its own repo!".
Unfortunately, that's because the previous repo got damaged beyond repair and I had no backup.
That means I'm putting backups in place in the afternoon.
That also means we've lost history... :-(
yann@1
     1
2002-07-05  Tomohiro Kato <tomop@teamgedoh.net>
yann@1
     2
yann@1
     3
	* glibc-compat/nss_dns/dns-network.c (getanswer_r): Reduce
yann@1
     4
	linebuflen in parallel to bumping up the buffer pointer.
yann@1
     5
	* glibc-compat/nss_dns/dns-host.c (getanswer_r): Likewise.
yann@1
     6
	Compare n with linebuflen instead of buflen.
yann@1
     7
yann@1
     8
2002-07-02  Andreas Schwab  <schwab@suse.de>
yann@1
     9
yann@1
    10
	* resolv/nss_dns/dns-network.c (getanswer_r): Reduce linebuflen
yann@1
    11
	in parallel to bumping up the buffer pointer.
yann@1
    12
yann@1
    13
--- libc/glibc-compat/nss_dns/dns-network.c.jj	Wed Jan 10 11:58:20 2001
yann@1
    14
+++ libc/glibc-compat/nss_dns/dns-network.c	Tue Jul  9 10:31:15 2002
yann@1
    15
@@ -283,7 +283,9 @@ getanswer_r (const querybuf *answer, int
yann@1
    16
 	    }
yann@1
    17
 	  cp += n;
yann@1
    18
 	  *alias_pointer++ = bp;
yann@1
    19
-	  bp += strlen (bp) + 1;
yann@1
    20
+	  n = strlen (bp) + 1;
yann@1
    21
+	  bp += n;
yann@1
    22
+	  linebuflen -= n;
yann@1
    23
 	  result->n_addrtype = class == C_IN ? AF_INET : AF_UNSPEC;
yann@1
    24
 	  ++have_answer;
yann@1
    25
 	}
yann@1
    26
--- libc/glibc-compat/nss_dns/dns-host.c.jj	Wed Jan 10 11:58:20 2001
yann@1
    27
+++ libc/glibc-compat/nss_dns/dns-host.c	Tue Jul  9 10:36:41 2002
yann@1
    28
@@ -424,7 +424,7 @@ getanswer_r (const querybuf *answer, int
yann@1
    29
 	  linebuflen -= n;
yann@1
    30
 	  /* Get canonical name.  */
yann@1
    31
 	  n = strlen (tbuf) + 1;	/* For the \0.  */
yann@1
    32
-	  if ((size_t) n > buflen || n >= MAXHOSTNAMELEN)
yann@1
    33
+	  if ((size_t) n > linebuflen || n >= MAXHOSTNAMELEN)
yann@1
    34
 	    {
yann@1
    35
 	      ++had_error;
yann@1
    36
 	      continue;
yann@1
    37
@@ -447,7 +447,7 @@ getanswer_r (const querybuf *answer, int
yann@1
    38
 	  cp += n;
yann@1
    39
 	  /* Get canonical name. */
yann@1
    40
 	  n = strlen (tbuf) + 1;   /* For the \0.  */
yann@1
    41
-	  if ((size_t) n > buflen || n >= MAXHOSTNAMELEN)
yann@1
    42
+	  if ((size_t) n > linebuflen || n >= MAXHOSTNAMELEN)
yann@1
    43
 	    {
yann@1
    44
 	      ++had_error;
yann@1
    45
 	      continue;
yann@1
    46
@@ -542,6 +542,7 @@ getanswer_r (const querybuf *answer, int
yann@1
    47
 	      linebuflen -= nn;
yann@1
    48
 	    }
yann@1
    49
 
yann@1
    50
+	  linebuflen -= sizeof (align) - ((u_long) bp % sizeof (align));
yann@1
    51
 	  bp += sizeof (align) - ((u_long) bp % sizeof (align));
yann@1
    52
 
yann@1
    53
 	  if (n >= linebuflen)
yann@1
    54
--- libc/resolv/nss_dns/dns-network.c.jj	Mon Jul  9 14:59:24 2001
yann@1
    55
+++ libc/resolv/nss_dns/dns-network.c	Tue Jul  9 10:30:31 2002
yann@1
    56
@@ -328,7 +328,9 @@ getanswer_r (const querybuf *answer, int
yann@1
    57
 	    }
yann@1
    58
 	  cp += n;
yann@1
    59
 	  *alias_pointer++ = bp;
yann@1
    60
-	  bp += strlen (bp) + 1;
yann@1
    61
+	  n = strlen (bp) + 1;
yann@1
    62
+	  bp += n;
yann@1
    63
+	  linebuflen -= n;
yann@1
    64
 	  result->n_addrtype = class == C_IN ? AF_INET : AF_UNSPEC;
yann@1
    65
 	  ++have_answer;
yann@1
    66
 	}