]> granicus.if.org Git - sudo/commitdiff
Remove a needless copy when parsing options.
authorTodd C. Miller <Todd.Miller@sudo.ws>
Tue, 29 May 2018 15:39:42 +0000 (09:39 -0600)
committerTodd C. Miller <Todd.Miller@sudo.ws>
Tue, 29 May 2018 15:39:42 +0000 (09:39 -0600)
plugins/sudoers/ldap.c
plugins/sudoers/sssd.c

index da15a1e3ab822edccc85fa1963e54a8b91854f1b..b18775eead2420f489088ca5b4a2ea264b537c47 100644 (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;
index 0174622699c6d1dc958717d340f2a6674d450e47..502afd31d2aa5583edd2bf73a694c8cd873d070a 100644 (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;