From 7df8818409c752cf3f0c3f8044fe9aebed8647bd Mon Sep 17 00:00:00 2001 From: "doug@openbsd.org" Date: Thu, 21 Aug 2014 01:08:52 +0000 Subject: [PATCH] upstream commit Free resources on error in mkstemp and fdopen ok djm@ --- moduli.c | 3 ++- ssh-keygen.c | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/moduli.c b/moduli.c index bb4dd7beb..474caca67 100644 --- a/moduli.c +++ b/moduli.c @@ -1,4 +1,4 @@ -/* $OpenBSD: moduli.c,v 1.28 2013/10/24 00:49:49 dtucker Exp $ */ +/* $OpenBSD: moduli.c,v 1.29 2014/08/21 01:08:52 doug Exp $ */ /* * Copyright 1994 Phil Karn * Copyright 1996-1998, 2003 William Allen Simpson @@ -461,6 +461,7 @@ write_checkpoint(char *cpfile, u_int32_t lineno) } if ((fp = fdopen(r, "w")) == NULL) { logit("write_checkpoint: fdopen: %s", strerror(errno)); + unlink(tmp); close(r); return; } diff --git a/ssh-keygen.c b/ssh-keygen.c index 23058ee99..e149eda3e 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.249 2014/07/03 03:47:27 djm Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.250 2014/08/21 01:08:52 doug Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -967,12 +967,14 @@ do_gen_all_hostkeys(struct passwd *pw) f = fdopen(fd, "w"); if (f == NULL) { printf("fdopen %s failed\n", identity_file); + close(fd); key_free(public); first = 0; continue; } if (!key_write(public, f)) { fprintf(stderr, "write key failed\n"); + fclose(f); key_free(public); first = 0; continue;