diff options
author | 2013-10-01 16:47:42 +0000 | |
---|---|---|
committer | 2013-10-01 16:47:42 +0000 | |
commit | 52d6904d9299b614d6085cf78834e3ccd155d9c4 (patch) | |
tree | 56474b9f7b0406d12258ec069fafcdc7d3ed9b05 /lib/libutil | |
parent | in truth, noone uses these backwards compat stubs to compile make on other (diff) | |
download | wireguard-openbsd-52d6904d9299b614d6085cf78834e3ccd155d9c4.tar.xz wireguard-openbsd-52d6904d9299b614d6085cf78834e3ccd155d9c4.zip |
Fix FILE * leak in error path if fprintf fails. Found by and OK gilles@
Diffstat (limited to 'lib/libutil')
-rw-r--r-- | lib/libutil/pidfile.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/libutil/pidfile.c b/lib/libutil/pidfile.c index 3625be34139..15f7c3a3ce2 100644 --- a/lib/libutil/pidfile.c +++ b/lib/libutil/pidfile.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pidfile.c,v 1.8 2008/06/26 05:42:05 ray Exp $ */ +/* $OpenBSD: pidfile.c,v 1.9 2013/10/01 16:47:42 millert Exp $ */ /* $NetBSD: pidfile.c,v 1.4 2001/02/19 22:43:42 cgd Exp $ */ /*- @@ -74,14 +74,16 @@ pidfile(const char *basename) } pid = getpid(); - if (fprintf(f, "%ld\n", (long)pid) <= 0 || fclose(f) != 0) { + if (fprintf(f, "%ld\n", (long)pid) <= 0 || fflush(f) != 0) { save_errno = errno; + (void) fclose(f); (void) unlink(pidfile_path); free(pidfile_path); pidfile_path = NULL; errno = save_errno; return (-1); } + (void) fclose(f); pidfile_pid = pid; if (atexit(pidfile_cleanup) < 0) { |