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 corresponds to this Fedora fix: * Tue Sep 27 2005 Karel Zak 3.1.5-3 - fix #169374 - Invalid Free (patch by Aharon Robbins) https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=169374 --- io.c +++ 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))