summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGünther Deschner <gdeschner@redhat.com>2013-05-22 17:26:00 +0200
committerGünther Deschner <gdeschner@redhat.com>2013-05-22 17:37:52 +0200
commit4ceed9a85484bdde3d355d21ceb666dc8d910910 (patch)
tree8f57b2b559be4b690bcd3c42b1df09e9535870e8
parent63233d7d9acc32ec63a5caf33cc13008bae799a2 (diff)
downloadgss-proxy-4ceed9a85484bdde3d355d21ceb666dc8d910910.tar.gz
gss-proxy-4ceed9a85484bdde3d355d21ceb666dc8d910910.tar.xz
gss-proxy-4ceed9a85484bdde3d355d21ceb666dc8d910910.zip
Fix realloc size in gp_get_cred_environment().
This fixes a segfault when no client_keytab is passed in via cred_store api. See https://fedorahosted.org/gss-proxy/ticket/85 for details. Signed-off-by: Günther Deschner <gdeschner@redhat.com> Reviewed-by: Simo Sorce <simo@redhat.com>
-rw-r--r--proxy/src/gp_creds.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/proxy/src/gp_creds.c b/proxy/src/gp_creds.c
index 0dd54f0..2517665 100644
--- a/proxy/src/gp_creds.c
+++ b/proxy/src/gp_creds.c
@@ -292,7 +292,8 @@ static int gp_get_cred_environment(struct gp_service *svc,
} else {
gss_key_value_element_desc *t;
c = cs->count;
- t = realloc(cs->elements, c + 1);
+ t = realloc(cs->elements,
+ (c + 1) * sizeof(gss_key_value_element_desc));
if (!t) {
ret = ENOMEM;
goto done;
@@ -304,7 +305,7 @@ static int gp_get_cred_environment(struct gp_service *svc,
goto done;
}
- /* increment now so in case of failure to opy the value, key is
+ /* increment now so in case of failure to copy the value, key is
* still freed properly */
cs->count = c + 1;
cs->elements[c].value = strdup(cs->elements[k_num].value);