Browse Source

Patch from Jay Kulpinski:
__decode_dotted() does not count the null terminating byte of
a hostname in the DNS response. This causes lookups to fail
if the DNS response doesn't compress domain names in the
message.

Eric Andersen 23 năm trước cách đây
mục cha
commit
91489217d4
1 tập tin đã thay đổi với 10 bổ sung0 xóa
  1. 10 0
      libc/inet/resolv.c

+ 10 - 0
libc/inet/resolv.c

@@ -50,6 +50,11 @@
  *   allocation accordingly.  See MAX_ALIASES and ALIAS_DIM below.
  *   This fixes the segfault in the Python 2.2.1 socket test.
  *
+ * 04-Jan-2003 Jay Kulpinski <jskulpin@berkshire.rr.com>
+ *   Fixed __decode_dotted to count the terminating null character
+ *   in a host name.
+ *
+ *
  */
 
 #define __FORCE_GLIBC
@@ -307,6 +312,11 @@ int __decode_dotted(const unsigned char *data, int offset,
 			dest[used++] = '\0';
 	}
 
+	/* The null byte must be counted too */
+	if (measure) {
+	    total++;
+	}
+
 	DPRINTF("Total decode len = %d\n", total);
 
 	return total;