aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2018-08-27 21:10:53 -0400
committerGreg Hudson <ghudson@mit.edu>2018-10-29 17:05:46 -0400
commitd6ce2d8273bf4b2a51de882866e42d33d1f568ca (patch)
tree08646968c4892d96e4d4f516a596c12362d691ed
parentcf00f0538b6b6e45171739a49424281a1802bb26 (diff)
downloadkrb5-d6ce2d8273bf4b2a51de882866e42d33d1f568ca.zip
krb5-d6ce2d8273bf4b2a51de882866e42d33d1f568ca.tar.gz
krb5-d6ce2d8273bf4b2a51de882866e42d33d1f568ca.tar.bz2
Check strdup return in kadm5_get_config_params()
When copying the realm string, if strdup() returns NULL, fail out with ENOMEM instead of pretending the realm wasn't specified. When copying KRB5_DEFAULT_SUPPORTED_ENCTYPES, if strdup() returns NULL, fail out with ENOMEM instead of crashing. Reported by Bean Zhang. (cherry picked from commit c0af219be218c02e72160ecd0521bc5b9bad546f) ticket: 8727 version_fixed: 1.15.4
-rw-r--r--src/lib/kadm5/alt_prof.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/lib/kadm5/alt_prof.c b/src/lib/kadm5/alt_prof.c
index ec6290e..e2d8f77 100644
--- a/src/lib/kadm5/alt_prof.c
+++ b/src/lib/kadm5/alt_prof.c
@@ -526,8 +526,11 @@ krb5_error_code kadm5_get_config_params(krb5_context context,
if (params_in->mask & KADM5_CONFIG_REALM) {
lrealm = params.realm = strdup(params_in->realm);
- if (params.realm != NULL)
- params.mask |= KADM5_CONFIG_REALM;
+ if (params.realm == NULL) {
+ ret = ENOMEM;
+ goto cleanup;
+ }
+ params.mask |= KADM5_CONFIG_REALM;
} else {
ret = krb5_get_default_realm(context, &lrealm);
if (ret)
@@ -730,6 +733,10 @@ krb5_error_code kadm5_get_config_params(krb5_context context,
krb5_aprof_get_string(aprofile, hierarchy, TRUE, &svalue);
if (svalue == NULL)
svalue = strdup(KRB5_DEFAULT_SUPPORTED_ENCTYPES);
+ if (svalue == NULL) {
+ ret = ENOMEM;
+ goto cleanup;
+ }
params.keysalts = NULL;
params.num_keysalts = 0;