yann@1: 2002-07-05 Tomohiro Kato yann@1: yann@1: * glibc-compat/nss_dns/dns-network.c (getanswer_r): Reduce yann@1: linebuflen in parallel to bumping up the buffer pointer. yann@1: * glibc-compat/nss_dns/dns-host.c (getanswer_r): Likewise. yann@1: Compare n with linebuflen instead of buflen. yann@1: yann@1: 2002-07-02 Andreas Schwab yann@1: yann@1: * resolv/nss_dns/dns-network.c (getanswer_r): Reduce linebuflen yann@1: in parallel to bumping up the buffer pointer. yann@1: yann@1: --- libc/glibc-compat/nss_dns/dns-network.c.jj Wed Jan 10 11:58:20 2001 yann@1: +++ libc/glibc-compat/nss_dns/dns-network.c Tue Jul 9 10:31:15 2002 yann@1: @@ -283,7 +283,9 @@ getanswer_r (const querybuf *answer, int yann@1: } yann@1: cp += n; yann@1: *alias_pointer++ = bp; yann@1: - bp += strlen (bp) + 1; yann@1: + n = strlen (bp) + 1; yann@1: + bp += n; yann@1: + linebuflen -= n; yann@1: result->n_addrtype = class == C_IN ? AF_INET : AF_UNSPEC; yann@1: ++have_answer; yann@1: } yann@1: --- libc/glibc-compat/nss_dns/dns-host.c.jj Wed Jan 10 11:58:20 2001 yann@1: +++ libc/glibc-compat/nss_dns/dns-host.c Tue Jul 9 10:36:41 2002 yann@1: @@ -424,7 +424,7 @@ getanswer_r (const querybuf *answer, int yann@1: linebuflen -= n; yann@1: /* Get canonical name. */ yann@1: n = strlen (tbuf) + 1; /* For the \0. */ yann@1: - if ((size_t) n > buflen || n >= MAXHOSTNAMELEN) yann@1: + if ((size_t) n > linebuflen || n >= MAXHOSTNAMELEN) yann@1: { yann@1: ++had_error; yann@1: continue; yann@1: @@ -447,7 +447,7 @@ getanswer_r (const querybuf *answer, int yann@1: cp += n; yann@1: /* Get canonical name. */ yann@1: n = strlen (tbuf) + 1; /* For the \0. */ yann@1: - if ((size_t) n > buflen || n >= MAXHOSTNAMELEN) yann@1: + if ((size_t) n > linebuflen || n >= MAXHOSTNAMELEN) yann@1: { yann@1: ++had_error; yann@1: continue; yann@1: @@ -542,6 +542,7 @@ getanswer_r (const querybuf *answer, int yann@1: linebuflen -= nn; yann@1: } yann@1: yann@1: + linebuflen -= sizeof (align) - ((u_long) bp % sizeof (align)); yann@1: bp += sizeof (align) - ((u_long) bp % sizeof (align)); yann@1: yann@1: if (n >= linebuflen) yann@1: #--- libc/resolv/nss_dns/dns-network.c.jj Mon Jul 9 14:59:24 2001 yann@1: #+++ libc/resolv/nss_dns/dns-network.c Tue Jul 9 10:30:31 2002 yann@1: #@@ -328,7 +328,9 @@ getanswer_r (const querybuf *answer, int yann@1: # } yann@1: # cp += n; yann@1: # *alias_pointer++ = bp; yann@1: #- bp += strlen (bp) + 1; yann@1: #+ n = strlen (bp) + 1; yann@1: #+ bp += n; yann@1: #+ linebuflen -= n; yann@1: # result->n_addrtype = class == C_IN ? AF_INET : AF_UNSPEC; yann@1: # ++have_answer; yann@1: # }