summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGünther Deschner <gdeschner@redhat.com>2013-04-12 13:53:02 +0200
committerSimo Sorce <simo@redhat.com>2013-04-23 12:01:55 -0700
commit11d93370415910dcbc437c13d3040232c9bd409c (patch)
treefc72e2b659bea86f351a75026b02eaee5d2f96d8
parent40c60f6b1d7d38290cddaaffd7bc34849721014c (diff)
downloadgss-proxy-11d93370415910dcbc437c13d3040232c9bd409c.tar.gz
gss-proxy-11d93370415910dcbc437c13d3040232c9bd409c.tar.xz
gss-proxy-11d93370415910dcbc437c13d3040232c9bd409c.zip
Fix potential double-frees in load_services().
Signed-off-by: Günther Deschner <gdeschner@redhat.com> Reviewed-by: Simo Sorce <simo@redhat.com>
-rw-r--r--proxy/src/gp_config.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/proxy/src/gp_config.c b/proxy/src/gp_config.c
index c2919a8..e5cfb16 100644
--- a/proxy/src/gp_config.c
+++ b/proxy/src/gp_config.c
@@ -155,7 +155,7 @@ static int load_services(struct gp_config *cfg, struct gp_ini_context *ctx)
GPDEBUG("Euid missing from [%s], ignoring.\n", secname);
gp_service_free(cfg->svcs[n]);
cfg->num_svcs--;
- free(secname);
+ safefree(secname);
continue;
}
cfg->svcs[n]->euid = valnum;
@@ -185,7 +185,7 @@ static int load_services(struct gp_config *cfg, struct gp_ini_context *ctx)
GPDEBUG("Mechs missing from [%s], ignoring.\n", secname);
gp_service_free(cfg->svcs[n]);
cfg->num_svcs--;
- free(secname);
+ safefree(secname);
continue;
}
@@ -213,11 +213,10 @@ static int load_services(struct gp_config *cfg, struct gp_ini_context *ctx)
GPDEBUG("No mechs found for [%s], ignoring.\n", secname);
gp_service_free(cfg->svcs[n]);
cfg->num_svcs--;
- free(secname);
+ safefree(secname);
continue;
}
- free(secname);
- secname = NULL;
+ safefree(secname);
}
}
@@ -229,7 +228,7 @@ static int load_services(struct gp_config *cfg, struct gp_ini_context *ctx)
ret = 0;
done:
- free(secname);
+ safefree(secname);
return ret;
}