]> granicus.if.org Git - php/commitdiff
Bug Fix #27657: TXT records longer than MAXHOSTNAMELEN cause segfaults.
authorSara Golemon <pollita@php.net>
Fri, 19 Mar 2004 21:42:29 +0000 (21:42 +0000)
committerSara Golemon <pollita@php.net>
Fri, 19 Mar 2004 21:42:29 +0000 (21:42 +0000)
ext/standard/dns.c

index 5959e991a5c4168baa9ad2f30fffba1db2234e21..70c93d3cc6adb6c88ccb45f7ca66933e0b6008cf 100644 (file)
@@ -400,12 +400,14 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int
                        break;
                case T_TXT:
                        add_assoc_string(*subarray, "type", "TXT", 1);
-                       n = cp[0]; 
-                       for(i=1; i<=n; i++)
-                               name[i-1] = cp[i];
-                       name[i-1] = '\0';
+                       n = cp[0];
+                       tp = emalloc(n + 1);
+                       for(i=1; i<=n; i++) {
+                               tp[i-1] = cp[i];
+                       }
+                       tp[i-1] = '\0';
                        cp += dlen;
-                       add_assoc_string(*subarray, "txt", name, 1);
+                       add_assoc_stringl(*subarray, "txt", tp, n, 0);
                        break;
                case T_SOA:
                        add_assoc_string(*subarray, "type", "SOA", 1);