summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Slebodnik <lslebodn@redhat.com>2014-11-21 14:00:23 +0100
committerJakub Hrozek <jhrozek@redhat.com>2014-11-24 22:22:54 +0100
commitbbaa6a48b46f02edfeacc7c32b442ecad24c9430 (patch)
tree6f734270e6abc056cd5d7ca2539b3c9d5af4d4e7
parent3cc9377bfce8bfda69244f7d79ce0062c60faa65 (diff)
downloadsssd-bbaa6a48b46f02edfeacc7c32b442ecad24c9430.tar.gz
sssd-bbaa6a48b46f02edfeacc7c32b442ecad24c9430.tar.xz
sssd-bbaa6a48b46f02edfeacc7c32b442ecad24c9430.zip
sss_client: Extract destroying of mmap cache to function
Reviewed-by: Michal Židek <mzidek@redhat.com> (cherry picked from commit 19f6a6733b5c6cf7dd2f6f746cfa5c787706331c)
-rw-r--r--src/sss_client/nss_mc_common.c30
1 files changed, 14 insertions, 16 deletions
diff --git a/src/sss_client/nss_mc_common.c b/src/sss_client/nss_mc_common.c
index 119d528c0..7845f8389 100644
--- a/src/sss_client/nss_mc_common.c
+++ b/src/sss_client/nss_mc_common.c
@@ -102,6 +102,18 @@ errno_t sss_nss_check_header(struct sss_cli_mc_ctx *ctx)
return 0;
}
+static void sss_nss_mc_destroy_ctx(struct sss_cli_mc_ctx *ctx)
+{
+ if ((ctx->mmap_base != NULL) && (ctx->mmap_size != 0)) {
+ munmap(ctx->mmap_base, ctx->mmap_size);
+ }
+ if (ctx->fd != -1) {
+ close(ctx->fd);
+ }
+ memset(ctx, 0, sizeof(struct sss_cli_mc_ctx));
+ ctx->fd = -1;
+}
+
static errno_t sss_nss_mc_init_ctx(const char *name,
struct sss_cli_mc_ctx *ctx)
{
@@ -157,14 +169,7 @@ static errno_t sss_nss_mc_init_ctx(const char *name,
done:
if (ret) {
- if ((ctx->mmap_base != NULL) && (ctx->mmap_size != 0)) {
- munmap(ctx->mmap_base, ctx->mmap_size);
- }
- if (ctx->fd != -1) {
- close(ctx->fd);
- }
- memset(ctx, 0, sizeof(struct sss_cli_mc_ctx));
- ctx->fd = -1;
+ sss_nss_mc_destroy_ctx(ctx);
}
free(file);
sss_nss_unlock();
@@ -191,14 +196,7 @@ errno_t sss_nss_mc_get_ctx(const char *name, struct sss_cli_mc_ctx *ctx)
done:
if (ret) {
- if ((ctx->mmap_base != NULL) && (ctx->mmap_size != 0)) {
- munmap(ctx->mmap_base, ctx->mmap_size);
- }
- if (ctx->fd != -1) {
- close(ctx->fd);
- }
- memset(ctx, 0, sizeof(struct sss_cli_mc_ctx));
- ctx->fd = -1;
+ sss_nss_mc_destroy_ctx(ctx);
}
return ret;
}