Remove a needless copy when parsing options.

This commit is contained in:
Todd C. Miller
2018-05-29 09:39:42 -06:00
parent 0b31f186cd
commit c990d93a4e
2 changed files with 5 additions and 21 deletions

View File

@@ -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;

View File

@@ -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;