From 22d381367c27910fe82f476a76b9f4ede555e35a Mon Sep 17 00:00:00 2001 From: Lukas Slebodnik Date: Fri, 8 Mar 2013 14:26:42 +0100 Subject: Reuse sss_open_cloexec at other places in code. Functions open_cloexec and openat_cloexec were renamed with prefix "sss_" and moved to separete file. Replacing duplicated code of function sss_open_cloexec everywhere in the source code. https://fedorahosted.org/sssd/ticket/1794 --- src/sss_client/nss_mc_common.c | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) (limited to 'src/sss_client') diff --git a/src/sss_client/nss_mc_common.c b/src/sss_client/nss_mc_common.c index 78490bef..66442b71 100644 --- a/src/sss_client/nss_mc_common.c +++ b/src/sss_client/nss_mc_common.c @@ -31,6 +31,7 @@ #include #include #include "nss_mc.h" +#include "util/util.h" /* FIXME: hook up to library destructor to avoid leaks */ /* FIXME: temporarily open passwd file on our own, later we will probably @@ -100,12 +101,6 @@ errno_t sss_nss_check_header(struct sss_cli_mc_ctx *ctx) return 0; } -#ifdef O_CLOEXEC -#define SSS_MC_OPEN_FLAGS O_RDONLY|O_CLOEXEC -#else -#define SSS_MC_OPEN_FLAGS O_RDONLY -#endif - errno_t sss_nss_mc_get_ctx(const char *name, struct sss_cli_mc_ctx *ctx) { struct stat fdstat; @@ -129,19 +124,9 @@ errno_t sss_nss_mc_get_ctx(const char *name, struct sss_cli_mc_ctx *ctx) goto done; } - ctx->fd = open(file, SSS_MC_OPEN_FLAGS); + ctx->fd = sss_open_cloexec(file, O_RDONLY, &ret); if (ctx->fd == -1) { - ret = EIO; goto done; -#ifndef O_CLOEXEC - } else { - int v; - - v = fcntl(ctx->fd, F_GETFD, 0); - /* we ignore an error, it's not fatal and there is nothing we - * can do about it anyways */ - (void)fcntl(ctx->fd, F_SETFD, v | FD_CLOEXEC); -#endif } ret = fstat(ctx->fd, &fdstat); -- cgit