12345678910111213141516171819202122232425262728293031 |
- fix an ugly core on a simple script
- http://lists.gnu.org/archive/html/bug-gnu-utils/2005-08/msg00040.html
- http://lists.gnu.org/archive/html/bug-gnu-utils/2005-08/msg00047.html
- --- gawk/io.c
- +++ gawk/io.c
- @@ -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))
|