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.
ticket: 8727
tags: pullup
target_version: 1.16-next
target_version: 1.15-next
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)
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;