aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Nazar <nazard@nazar.ca>2020-07-20 11:17:25 -0400
committerSteve Dickson <steved@redhat.com>2020-07-22 10:39:16 -0400
commit7c2d3617b98eb136a00f78c0ec0a3779c801c9e3 (patch)
tree7fd28c09ee70e7b5ebd6f0fb66325a5a849e1659
parentdd49e94540799c662111db712eab6e19bd929c10 (diff)
downloadnfs-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.c6
-rw-r--r--utils/gssd/krb5_util.c8
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 {