Applied a bug fix on file reading code from John Ellson <ellson@lucent.com>, Daniel.
diff --git a/ChangeLog b/ChangeLog
index 85adc27..2eb53ec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Fri Jul  9 12:10:24 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
+
+	* HTMLparser.c parser.c: applied patch from John Ellson <ellson@lucent.com>
+	  which fixed a problem on the file reading-code.
+
 Wed Jul  7 09:28:43 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
 
 	* HTMLparser.[ch], HTMLtree.[ch]: more work for HTML parsing and
diff --git a/HTMLparser.c b/HTMLparser.c
index 5259f6e..aeb8bf7 100644
--- a/HTMLparser.c
+++ b/HTMLparser.c
@@ -2630,11 +2630,11 @@
 	res = stat(filename, &buf);
 	if (res < 0)
 		return(NULL);
-	len = buf.st_size + 1;
+	len = buf.st_size;
 	if (len < MINLEN)
 		len = MINLEN;
     }
-    buffer = (char *)malloc(len*sizeof(char));
+    buffer = (char *)malloc((len+1)*sizeof(char));
     if (buffer == NULL) {
 	    fprintf (stderr, "Cannot malloc\n");
 	    perror ("malloc failed");
@@ -2649,7 +2649,7 @@
 #endif
 	if (cnt == len) {
 	    len *= 2;
-	    nbuf =  (char *)realloc(buffer,len*sizeof(char));
+	    nbuf =  (char *)realloc(buffer,(len+1)*sizeof(char));
 	    if (nbuf == NULL) {
 		fprintf(stderr,"Cannot realloc\n");
 		free(buffer);
diff --git a/parser.c b/parser.c
index d1cabbe..7a47cd5 100644
--- a/parser.c
+++ b/parser.c
@@ -316,11 +316,11 @@
 	res = stat(filename, &buf);
 	if (res < 0) 
 		return(NULL);
-	len = buf.st_size+1;
+	len = buf.st_size;
 	if (len < MINLEN)
 		len = MINLEN;
     }
-    buffer = (char *)malloc(len*sizeof(char));
+    buffer = (char *)malloc((len+1)*sizeof(char));
     if (buffer == NULL) {
 		fprintf (stderr, "Cannot malloc\n");
 		perror ("malloc failed");
@@ -335,7 +335,7 @@
 #endif
 	if (cnt >= len) {
 	    len *= 2;
-	    nbuf =  (char *)realloc(buffer,len*sizeof(char));
+	    nbuf =  (char *)realloc(buffer,(len+1)*sizeof(char));
 	    if (nbuf == NULL) {
 		    fprintf(stderr,"Cannot realloc\n");
 		    free(buffer);
@@ -4683,11 +4683,11 @@
 		res = stat(filename, &buf);
 		if (res < 0) 
 			return(NULL);
-		len = buf.st_size+1;
+		len = buf.st_size;
 		if (len < MINLEN)
 			len = MINLEN;
     }
-	buffer = (char *)malloc(len*sizeof(char));
+	buffer = (char *)malloc((len+1)*sizeof(char));
     if (buffer == NULL) {
 		fprintf (stderr, "Cannot malloc\n");
 		perror ("malloc failed");
@@ -4702,7 +4702,7 @@
 #endif
 		if (cnt == len) {
 			len *= 2;
-			nbuf =  (char *)realloc(buffer,len*sizeof(char));
+			nbuf =  (char *)realloc(buffer,(len+1)*sizeof(char));
 			if (nbuf == NULL) {
 				fprintf(stderr,"Cannot realloc\n");
 				free(buffer);