]> granicus.if.org Git - php/commitdiff
Fixed memory leak on error.
authorIlia Alshanetsky <iliaa@php.net>
Sun, 23 Oct 2005 15:29:09 +0000 (15:29 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Sun, 23 Oct 2005 15:29:09 +0000 (15:29 +0000)
ext/standard/dns.c

index 8d1d1d0df068d373c2f4dc78b5fcff5b7ee2ee7f..b7445bf40e3ef5f4b65147590f8a667b39df4735 100644 (file)
@@ -350,7 +350,7 @@ PHP_MINIT_FUNCTION(dns) {
 #endif /* QFIXEDSZ */
 
 #ifndef MAXHOSTNAMELEN
-#define MAXHOSTNAMELEN  256
+#define MAXHOSTNAMELEN  1024
 #endif /* MAXHOSTNAMELEN */
 
 #ifndef MAXRESOURCERECORDS
@@ -747,12 +747,14 @@ PHP_FUNCTION(dns_get_record)
                        if (n<0) {
                                php_error_docref(NULL TSRMLS_CC, E_WARNING, "res_nmkquery() failed");
                                zval_dtor(return_value);
+                               res_nclose(&res);
                                RETURN_FALSE;
                        }
                        n = res_nsend(&res, buf.qb2, n, answer.qb2, sizeof answer);
                        if (n<0) {
                                php_error_docref(NULL TSRMLS_CC, E_WARNING, "res_nsend() failed");
                                zval_dtor(return_value);
+                               res_nclose(&res);
                                RETURN_FALSE;
                        }
                
@@ -770,6 +772,7 @@ PHP_FUNCTION(dns_get_record)
                                if (n < 0) {
                                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to parse DNS data received");
                                        zval_dtor(return_value);
+                                       res_nclose(&res);
                                        RETURN_FALSE;
                                }
                                cp += n + QFIXEDSZ;