unofficial mirror of libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] nss_dns: Adjust ns_name_ntop failure handling in getnetby*
@ 2019-03-08 20:46 Florian Weimer
  2019-03-11 21:50 ` DJ Delorie
  0 siblings, 1 reply; 3+ messages in thread
From: Florian Weimer @ 2019-03-08 20:46 UTC (permalink / raw)
  To: libc-alpha

If the function fails, the output buffer is not large enough.  The
function does not fail for any other reason.

2019-03-08  Florian Weimer  <fweimer@redhat.com>

	* resolv/nss_dns/dns-network.c (getanswer_r): On ns_name_ntop
	failure, the buffer is always too small.

diff --git a/resolv/nss_dns/dns-network.c b/resolv/nss_dns/dns-network.c
index 68266d57c9..9b75ac8233 100644
--- a/resolv/nss_dns/dns-network.c
+++ b/resolv/nss_dns/dns-network.c
@@ -324,19 +324,14 @@ getanswer_r (const querybuf *answer, int anslen, struct netent *result,
     {
       int n = __ns_name_unpack (answer->buf, end_of_message, cp,
 				packtmp, sizeof packtmp);
-      if (n != -1 && __ns_name_ntop (packtmp, bp, linebuflen) == -1)
-	{
-	  if (errno == EMSGSIZE)
-	    goto too_small;
-
-	  n = -1;
-	}
-
-      if (n > 0 && bp[0] == '.')
-	bp[0] = '\0';
-
       if (n < 0)
 	goto bad_message;
+      if (__ns_name_ntop (packtmp, bp, linebuflen) < 0)
+	goto too_small;
+
+      if (bp[0] == '.')
+	bp[0] = '\0';
+
       cp += n;
 
       if (end_of_message - cp < 10)
@@ -355,16 +350,11 @@ getanswer_r (const querybuf *answer, int anslen, struct netent *result,
 	{
 	  n = __ns_name_unpack (answer->buf, end_of_message, cp,
 				packtmp, sizeof packtmp);
-	  if (n != -1 && __ns_name_ntop (packtmp, bp, linebuflen) == -1)
-	    {
-	      if (errno == EMSGSIZE)
-		goto too_small;
-
-	      n = -1;
-	    }
-
 	  if (n < 0)
 	    goto bad_message;
+	  if (__ns_name_ntop (packtmp, bp, linebuflen) < 0)
+	    goto too_small;
+
 	  cp += rdatalen;
          if (alias_pointer + 2 < &net_data->aliases[MAX_NR_ALIASES])
            {

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-03-11 21:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-08 20:46 [PATCH] nss_dns: Adjust ns_name_ntop failure handling in getnetby* Florian Weimer
2019-03-11 21:50 ` DJ Delorie
2019-03-11 21:58   ` Florian Weimer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).