arrfab / rpms / glibc

Forked from rpms/glibc 4 years ago
Clone

Blame SOURCES/glibc-rh1039304-3.patch

147e83
commit 9e0ad3049dbae88d615bfb038e53bf365a39a634
147e83
Author: Florian Weimer <fweimer@redhat.com>
147e83
Date:   Sat Nov 11 11:41:45 2017 +0100
147e83
147e83
    resolv: ns_name_pton should report trailing \ as error [BZ #22413]
147e83
147e83
diff --git a/resolv/ns_name.c b/resolv/ns_name.c
147e83
index 08a75e2fe0b4edd6..73213fee2dca530b 100644
147e83
--- a/resolv/ns_name.c
147e83
+++ b/resolv/ns_name.c
147e83
@@ -222,6 +222,11 @@ ns_name_pton(const char *src, u_char *dst, size_t dstsiz)
147e83
 		}
147e83
 		*bp++ = (u_char)c;
147e83
 	}
147e83
+	if (escaped) {
147e83
+		/* Trailing backslash.  */
147e83
+		__set_errno (EMSGSIZE);
147e83
+		return -1;
147e83
+	}
147e83
 	c = (bp - label - 1);
147e83
 	if ((c & NS_CMPRSFLGS) != 0) {		/*%< Label too big. */
147e83
 		__set_errno (EMSGSIZE);
147e83
diff --git a/resolv/tst-ns_name_pton.c b/resolv/tst-ns_name_pton.c
147e83
index 879d97c9d3816210..73bdb05e08e405dc 100644
147e83
--- a/resolv/tst-ns_name_pton.c
147e83
+++ b/resolv/tst-ns_name_pton.c
147e83
@@ -127,6 +127,13 @@ static const struct test_case tests[] =
147e83
       "\377\377", NULL, },
147e83
     { STRING63OCT "." STRING63OCT "." STRING63OCT "." STRING60OCT
147e83
       "\377\377\377", NULL, },
147e83
+    { "\\", NULL, },
147e83
+    { "\\\\", "\\\\", false },
147e83
+    { "\\\\.", "\\\\", true },
147e83
+    { "\\\\\\", NULL, },
147e83
+    { "a\\", NULL, },
147e83
+    { "a.\\", NULL, },
147e83
+    { "a.b\\", NULL, },
147e83
   };
147e83
 
147e83
 static int