From f2aaea5cd31fcca6f060e1de0cb1e91c05c716bb Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Mon, 29 Sep 2014 17:17:26 +0100 Subject: users/19183: improve unlikely error case with fdopen in history code --- ChangeLog | 3 +++ Src/hist.c | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index dba06e479..f1fb73ed0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2014-09-29 Peter Stephenson + * users/19183: Src/hist.c: handle unlikely error case with + fdopen() better. + * 33276: Src/params.c, Src/zsh.h: safer import of numerical variables from environment. diff --git a/Src/hist.c b/Src/hist.c index d29a65afe..4660fd073 100644 --- a/Src/hist.c +++ b/Src/hist.c @@ -2593,7 +2593,12 @@ savehistfile(char *fn, int err, int writeflags) out = NULL; } else { int fd = open(tmpfile, O_CREAT | O_WRONLY | O_EXCL, 0600); - out = fd >= 0 ? fdopen(fd, "w") : NULL; + if (fd >=0) { + out = fdopen(fd, "w"); + if (!out) + close(fd); + } else + out = NULL; } #ifdef HAVE_FCHMOD -- cgit 1.4.1