fixed xmlIOParseDTD handling of @input in error case, Should fix #335085

* parser.c: fixed xmlIOParseDTD handling of @input in error case,
  Should fix #335085
* testapi.c: reset the http_proxy env variable to not waste time
  on regression tests
Daniel
diff --git a/ChangeLog b/ChangeLog
index 8ca31e2..86870c9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Fri Oct 13 12:27:22 CEST 2006 Daniel Veillard <daniel@veillard.com>
+
+	* parser.c: fixed xmlIOParseDTD handling of @input in error case,
+	  Should fix #335085
+	* testapi.c: reset the http_proxy env variable to not waste time
+	  on regression tests
+
 Thu Oct 12 23:07:43 CEST 2006 Rob Richards <rrichards@ctindustries.net>
 
 	* xmlIO.c: fix Windows compile - missing xmlWrapOpen.
diff --git a/parser.c b/parser.c
index ea95712..a79e27a 100644
--- a/parser.c
+++ b/parser.c
@@ -10827,7 +10827,7 @@
  * Load and parse a DTD
  * 
  * Returns the resulting xmlDtdPtr or NULL in case of error.
- * @input will be freed at parsing end.
+ * @input will be freed by the function in any case.
  */
 
 xmlDtdPtr
@@ -10843,6 +10843,7 @@
 
     ctxt = xmlNewParserCtxt();
     if (ctxt == NULL) {
+        xmlFreeParserInputBuffer(input);
 	return(NULL);
     }
 
@@ -10864,6 +10865,7 @@
     pinput = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);
     if (pinput == NULL) {
         if (sax != NULL) ctxt->sax = NULL;
+        xmlFreeParserInputBuffer(input);
 	xmlFreeParserCtxt(ctxt);
 	return(NULL);
     }
diff --git a/testapi.c b/testapi.c
index ec09421..815ed54 100644
--- a/testapi.c
+++ b/testapi.c
@@ -14,6 +14,7 @@
 #include <stdio.h>
 #endif
 
+#include <stdlib.h> /* for putenv() */
 #include <string.h>
 #include <libxml/xmlerror.h>
 #include <libxml/relaxng.h>
@@ -126,6 +127,9 @@
     int ret;
     int blocks, mem;
 
+    /* access to the proxy can slow up regression tests a lot */
+    putenv("http_proxy=");
+
     memset(chartab, 0, sizeof(chartab));
     strncpy((char *) chartab, "  chartab\n", 20);
     memset(inttab, 0, sizeof(inttab));