* sysdeps/unix/sysv/linux/check_pf.c (make_request): Return -1 instead
[platform/upstream/glibc.git] / resolv / ns_name.c
index a4f066c..ed36191 100644 (file)
@@ -145,6 +145,7 @@ ns_name_ntop(const u_char *src, char *dst, size_t dstsiz) {
        *dn++ = '\0';
        return (dn - dst);
 }
+libresolv_hidden_def (ns_name_ntop)
 
 /*
  * ns_name_pton(src, dst, dstsiz)
@@ -195,12 +196,6 @@ ns_name_pton(const char *src, u_char *dst, size_t dstsiz) {
                                   it internally.  */
                                *label = 0x41;
                                label = bp++;
-                               /* Another simplification: always assume
-                                  128 bit number.  */
-                               if (bp + 16 >= eom) {
-                                       __set_errno (EMSGSIZE);
-                                       return (-1);
-                               }
                                ++src;
                                while (isxdigit (*src)) {
                                        n = *src > '9' ? *src - 'a' + 10 : *src - '0';
@@ -211,6 +206,10 @@ ns_name_pton(const char *src, u_char *dst, size_t dstsiz) {
                                        }
                                        n <<= 4;
                                        n += *src > '9' ? *src - 'a' + 10 : *src - '0';
+                                       if (bp + 1 >= eom) {
+                                               __set_errno (EMSGSIZE);
+                                               return (-1);
+                                       }
                                        *bp++ = n;
                                        ++src;
                                }
@@ -423,6 +422,7 @@ ns_name_unpack(const u_char *msg, const u_char *eom, const u_char *src,
                len = srcp - src;
        return (len);
 }
+libresolv_hidden_def (ns_name_unpack)
 
 /*
  * ns_name_pack(src, dst, dstsiz, dnptrs, lastdnptr)