diff options
author | Günther Deschner <gdeschner@redhat.com> | 2013-05-22 17:26:00 +0200 |
---|---|---|
committer | Günther Deschner <gdeschner@redhat.com> | 2013-05-22 17:37:52 +0200 |
commit | 4ceed9a85484bdde3d355d21ceb666dc8d910910 (patch) | |
tree | 8f57b2b559be4b690bcd3c42b1df09e9535870e8 | |
parent | 63233d7d9acc32ec63a5caf33cc13008bae799a2 (diff) | |
download | gss-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.c | 5 |
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); |