diff options
author | Doug Nazar <nazard@nazar.ca> | 2020-07-20 11:17:25 -0400 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2020-07-22 10:39:16 -0400 |
commit | 7c2d3617b98eb136a00f78c0ec0a3779c801c9e3 (patch) | |
tree | 7fd28c09ee70e7b5ebd6f0fb66325a5a849e1659 | |
parent | dd49e94540799c662111db712eab6e19bd929c10 (diff) | |
download | nfs-utils-7c2d3617b98eb136a00f78c0ec0a3779c801c9e3.tar.gz |
gssd: Fix handling of failed allocations
Signed-off-by: Doug Nazar <nazard@nazar.ca>
Signed-off-by: Steve Dickson <steved@redhat.com>
-rw-r--r-- | utils/gssd/gss_names.c | 6 | ||||
-rw-r--r-- | utils/gssd/krb5_util.c | 8 |
2 files changed, 8 insertions, 6 deletions
diff --git a/utils/gssd/gss_names.c b/utils/gssd/gss_names.c index 2a7f3a13..982b96f4 100644 --- a/utils/gssd/gss_names.c +++ b/utils/gssd/gss_names.c @@ -110,10 +110,12 @@ get_hostbased_client_name(gss_name_t client_name, gss_OID mech, /* For Kerberos, transform the NT_KRB5_PRINCIPAL name to * an NT_HOSTBASED_SERVICE name */ if (g_OID_equal(&krb5oid, mech)) { - if (get_krb5_hostbased_name(&name, &cname) == 0) - *hostbased_name = cname; + if (get_krb5_hostbased_name(&name, &cname) != 0) + goto out_rel_buf; + *hostbased_name = cname; } else { printerr(1, "WARNING: unknown/unsupport mech OID\n"); + goto out_rel_buf; } res = 0; diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c index cd5a919b..012a064b 100644 --- a/utils/gssd/krb5_util.c +++ b/utils/gssd/krb5_util.c @@ -876,10 +876,10 @@ find_keytab_entry(krb5_context context, krb5_keytab kt, /* Compute the active directory machine name HOST$ */ krb5_appdefault_string(context, "nfs", NULL, "ad_principal_name", notsetstr, &adhostoverride); - if (strcmp(adhostoverride, notsetstr) != 0) { - printerr (1, - "AD host string overridden with \"%s\" from appdefaults\n", - adhostoverride); + if (adhostoverride && strcmp(adhostoverride, notsetstr) != 0) { + printerr(1, + "AD host string overridden with \"%s\" from appdefaults\n", + adhostoverride); /* No overflow: Windows cannot handle strings longer than 19 chars */ strcpy(myhostad, adhostoverride); } else { |