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);