From aff8b0e3b41644c70704b78e15501779d52b6ff4 Mon Sep 17 00:00:00 2001 From: Pavel Reichl Date: Fri, 28 Nov 2014 13:17:44 +0000 Subject: Fix: always check return value of unlink() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resolves: https://fedorahosted.org/sssd/ticket/2506 Reviewed-by: Lukáš Slebodník --- src/responder/ssh/sshsrv_cmd.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/responder/ssh/sshsrv_cmd.c') diff --git a/src/responder/ssh/sshsrv_cmd.c b/src/responder/ssh/sshsrv_cmd.c index 5bed2e0ad..e7bed3ab2 100644 --- a/src/responder/ssh/sshsrv_cmd.c +++ b/src/responder/ssh/sshsrv_cmd.c @@ -536,7 +536,7 @@ static errno_t ssh_host_pubkeys_update_known_hosts(struct ssh_cmd_ctx *cmd_ctx) { TALLOC_CTX *tmp_ctx; - errno_t ret; + errno_t ret, tmp_ret; const char *attrs[] = { SYSDB_NAME, SYSDB_NAME_ALIAS, @@ -654,7 +654,17 @@ ssh_host_pubkeys_update_known_hosts(struct ssh_cmd_ctx *cmd_ctx) done: if (fd != -1) close(fd); - if (ret != EOK && filename) unlink(filename); + if (ret != EOK && filename) { + tmp_ret = unlink(filename); + /* non-fatal failure */ + if (tmp_ret != EOK) { + tmp_ret = errno; + DEBUG(SSSDBG_MINOR_FAILURE, + "Failed to remove file: %s - %d : [%s]!\n", + filename, tmp_ret, sss_strerror(tmp_ret)); + } + } + talloc_free(tmp_ctx); return ret; -- cgit