From: Todd C. Miller Date: Tue, 29 May 2018 15:39:42 +0000 (-0600) Subject: Remove a needless copy when parsing options. X-Git-Tag: SUDO_1_8_24^2~55 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c990d93a4ed43ab446c7bcbda55d6a7debfa29c1;p=sudo Remove a needless copy when parsing options. --- diff --git a/plugins/sudoers/ldap.c b/plugins/sudoers/ldap.c index da15a1e3a..b18775eea 100644 --- a/plugins/sudoers/ldap.c +++ b/plugins/sudoers/ldap.c @@ -417,24 +417,14 @@ sudo_ldap_parse_options(LDAP *ld, LDAPMessage *entry, struct defaults_list *defs /* Walk through options, appending to defs. */ for (p = bv; *p != NULL; p++) { - char *copy, *var, *val; + char *var, *val; int op; - copy = strdup((*p)->bv_val); /* XXX - should not need to copy */ - if (copy == NULL) { - sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory")); - free(copy); - goto done; - } - - op = sudo_ldap_parse_option(copy, &var, &val); + op = sudo_ldap_parse_option((*p)->bv_val, &var, &val); if (!sudo_ldap_add_default(var, val, op, source, defs)) { sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory")); - free(copy); goto done; } - - free(copy); } ret = true; diff --git a/plugins/sudoers/sssd.c b/plugins/sudoers/sssd.c index 017462269..502afd31d 100644 --- a/plugins/sudoers/sssd.c +++ b/plugins/sudoers/sssd.c @@ -437,18 +437,12 @@ sudo_sss_parse_options(struct sudo_sss_handle *handle, struct sss_sudo_rule *rul /* Walk through options, appending to defs. */ for (i = 0; val_array[i] != NULL; i++) { - char *copy, *var, *val; + char *var, *val; int op; - /* XXX - should not need to copy */ - if ((copy = strdup(val_array[i])) == NULL) + op = sudo_ldap_parse_option(val_array[i], &var, &val); + if (!sudo_ldap_add_default(var, val, op, source, defs)) goto oom; - op = sudo_ldap_parse_option(copy, &var, &val); - if (!sudo_ldap_add_default(var, val, op, source, defs)) { - free(copy); - goto oom; - } - free(copy); } ret = true; goto done;