From 79402313dc0d7f854b4334dd427e03b7baf0b9db Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Sun, 5 Aug 2012 22:03:11 +0200 Subject: Do not try to remove the temp login file if already renamed write_selinux_string() would try to unlink the temporary file even after it was renamed. Failure to unlink the file would not be fatal, but would produce a confusing error message. Also don't use "0" for the default fd number, that's reserved for stdin. Using -1 is safer. --- src/responder/pam/pamsrv_cmd.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/responder/pam/pamsrv_cmd.c b/src/responder/pam/pamsrv_cmd.c index 8c9dd9b5..944845a8 100644 --- a/src/responder/pam/pamsrv_cmd.c +++ b/src/responder/pam/pamsrv_cmd.c @@ -366,7 +366,7 @@ static errno_t write_selinux_string(const char *username, char *string) char *tmp_path = NULL; ssize_t written; int len; - int fd = 0; + int fd = -1; mode_t oldmask; TALLOC_CTX *tmp_ctx; char *full_string = NULL; @@ -437,9 +437,10 @@ static errno_t write_selinux_string(const char *username, char *string) } else { ret = EOK; } + fd = -1; done: - if (fd > 0) { + if (fd != -1) { close(fd); if (unlink(tmp_path) < 0) { DEBUG(SSSDBG_MINOR_FAILURE, ("Could not remove file [%s]", -- cgit