summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Dickson <steved@redhat.com>2019-04-28 14:28:15 -0400
committerSteve Dickson <steved@redhat.com>2019-04-28 14:28:15 -0400
commit097719af0e29537ee59a7c5358b9571900f759cb (patch)
tree645f5d6f447c277946575b4681fff18f4b8d7dc4
parentfa35f1685bfea974a7706ea4fae957ff1fc37cc1 (diff)
downloadnfs-utils-097719af0e29537ee59a7c5358b9571900f759cb.tar.gz
Removed resource leaks from gssd/krb5_util.c
gssd/krb5_util.c:696: overwrite_var: Overwriting "k5err" in "k5err = gssd_k5_err_msg(context, code)" leaks the storage that "k5err" points to. gssd/krb5_util.c:737: overwrite_var: Overwriting "k5err" in "k5err = gssd_k5_err_msg(context, code)" leaks the storage that "k5err" points to. gssd/krb5_util.c:899: overwrite_var: Overwriting "k5err" in "k5err = gssd_k5_err_msg(context, code)" leaks the storage that "k5err" points to. krb5_util.c:1173: leaked_storage: Variable "l" going out of scope leaks the storage it points to. Signed-off-by: Steve Dickson <steved@redhat.com>
-rw-r--r--utils/gssd/krb5_util.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c
index 6daba44..454a6eb 100644
--- a/utils/gssd/krb5_util.c
+++ b/utils/gssd/krb5_util.c
@@ -699,6 +699,8 @@ gssd_search_krb5_keytab(krb5_context context, krb5_keytab kt,
"we failed to unparse principal name: %s\n",
k5err);
k5_free_kt_entry(context, kte);
+ free(k5err);
+ k5err = NULL;
continue;
}
printerr(4, "Processing keytab entry for principal '%s'\n",
@@ -900,6 +902,8 @@ find_keytab_entry(krb5_context context, krb5_keytab kt,
k5err = gssd_k5_err_msg(context, code);
printerr(1, "%s while building principal for '%s'\n",
k5err, spn);
+ free(k5err);
+ k5err = NULL;
continue;
}
code = krb5_kt_get_entry(context, kt, princ, 0, 0, kte);
@@ -1169,7 +1173,8 @@ gssd_get_krb5_machine_cred_list(char ***list)
*list = l;
retval = 0;
goto out;
- }
+ } else
+ free((void *)l);
out:
return retval;
}
@@ -1217,6 +1222,8 @@ gssd_destroy_krb5_machine_creds(void)
printerr(0, "WARNING: %s while resolving credential "
"cache '%s' for destruction\n", k5err,
ple->ccname);
+ free(k5err);
+ k5err = NULL;
continue;
}