diff options
Diffstat (limited to 'package/busybox/busybox-1.5.0-max_host_len_40.patch')
-rw-r--r-- | package/busybox/busybox-1.5.0-max_host_len_40.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/package/busybox/busybox-1.5.0-max_host_len_40.patch b/package/busybox/busybox-1.5.0-max_host_len_40.patch new file mode 100644 index 000000000..7b9ba1f77 --- /dev/null +++ b/package/busybox/busybox-1.5.0-max_host_len_40.patch @@ -0,0 +1,37 @@ +diff -ur busybox-1.5.0/networking/dnsd.c busybox-1.5.0-patched/networking/dnsd.c +--- busybox-1.5.0/networking/dnsd.c 2007-03-22 15:21:23.000000000 -0500 ++++ busybox-1.5.0-patched/networking/dnsd.c 2007-04-13 06:53:49.000000000 -0500 +@@ -30,7 +30,7 @@ + #define DEBUG 0 + + enum { +- MAX_HOST_LEN = 16, // longest host name allowed is 15 ++ MAX_HOST_LEN = 41, // longest host name allowed is 40 + IP_STRING_LEN = 18, // .xxx.xxx.xxx.xxx\0 + + //must be strlen('.in-addr.arpa') larger than IP_STRING_LEN +@@ -186,17 +186,21 @@ + { + int i; + struct dns_entry *d=dnsentry; ++ char *p,*q; ++ ++ q = (char *)&(qs[1]); ++ p = &(d->name[1]); + + do { + #if DEBUG +- char *p,*q; +- q = (char *)&(qs[1]); +- p = &(d->name[1]); + fprintf(stderr, "\n%s: %d/%d p:%s q:%s %d", + __FUNCTION__, (int)strlen(p), (int)(d->name[0]), + p, q, (int)strlen(q)); + #endif + if (type == REQ_A) { /* search by host name */ ++ p = &(d->name[1]); ++ if(strlen(q) != strlen(p)) ++ continue; + for (i = 1; i <= (int)(d->name[0]); i++) + if (tolower(qs[i]) != d->name[i]) + break; |