diff options
author | Kirill Ponomarev <krion@FreeBSD.org> | 2007-09-03 20:18:36 +0000 |
---|---|---|
committer | Kirill Ponomarev <krion@FreeBSD.org> | 2007-09-03 20:18:36 +0000 |
commit | 53381205a1926e057e120254780ef1ab5c420770 (patch) | |
tree | 235162a749869eb9080243cb75c26dee3c7c3dfe /lang/gawk | |
parent | - Update to 2.7 (diff) |
Fix coredump while running with nonexistent files.
PR: ports/115014
Submitted by: Kirill Nuzhdin <kirill@rad.chem.msu.ru>
Notes
Notes:
svn path=/head/; revision=198708
Diffstat (limited to 'lang/gawk')
-rw-r--r-- | lang/gawk/files/patch-io.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lang/gawk/files/patch-io.c b/lang/gawk/files/patch-io.c new file mode 100644 index 000000000000..9d8f06f8c2fc --- /dev/null +++ b/lang/gawk/files/patch-io.c @@ -0,0 +1,29 @@ + +$FreeBSD$ + +--- io.c.orig ++++ 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)) |