more toolchain + stage 1 updates
[hdw-linux/hdw-linux.git] / packages / base / gawk / gawk.patch
diff --git a/packages/base/gawk/gawk.patch b/packages/base/gawk/gawk.patch
new file mode 100644 (file)
index 0000000..6cfd8c6
--- /dev/null
@@ -0,0 +1,35 @@
+--- gawk-3.1.5.orig/io.c       2005-07-26 18:07:43.000000000 +0000
++++ gawk-3.1.5/io.c    2005-09-24 14:43:13.771380264 +0000
+@@ -2480,9 +2480,12 @@
+ {
+       struct stat sbuf;
+       struct open_hook *oh;
++      int iop_malloced = FALSE;
+-      if (iop == NULL)
++      if (iop == NULL) {
+               emalloc(iop, IOBUF *, sizeof(IOBUF), "iop_alloc");
++              iop_malloced = TRUE;
++      }
+       memset(iop, '\0', sizeof(IOBUF));
+       iop->flag = 0;
+       iop->fd = fd;
+@@ -2495,7 +2498,8 @@
+       }
+       if (iop->fd == INVALID_HANDLE) {
+-              free(iop);
++              if (iop_malloced)
++                      free(iop);
+               return NULL;
+       }
+       if (isatty(iop->fd))
+@@ -2503,7 +2507,7 @@
+       iop->readsize = iop->size = optimal_bufsize(iop->fd, & sbuf);
+       iop->sbuf = sbuf;
+       if (do_lint && S_ISREG(sbuf.st_mode) && sbuf.st_size == 0)
+-                      lintwarn(_("data file `%s' is empty"), name);
++              lintwarn(_("data file `%s' is empty"), name);
+       errno = 0;
+       iop->count = iop->scanoff = 0;
+       emalloc(iop->buf, char *, iop->size += 2, "iop_alloc");