]> granicus.if.org Git - sudo/commitdiff
simplify iterator
authorTodd C. Miller <Todd.Miller@sudo.ws>
Sat, 10 Feb 2018 11:29:43 +0000 (04:29 -0700)
committerTodd C. Miller <Todd.Miller@sudo.ws>
Sat, 10 Feb 2018 11:29:43 +0000 (04:29 -0700)
plugins/sudoers/ldap.c
plugins/sudoers/ldap_common.c
plugins/sudoers/sssd.c
plugins/sudoers/sudo_ldap.h

index 9498454f201a4fe5c039312edbdc7a9ece708fd9..011de2d4c17ead12ed40c53d0fea921f60b68ebb 100644 (file)
@@ -2312,12 +2312,11 @@ sudo_ldap_display_bound_defaults(struct sudo_nss *nss, struct passwd *pw,
 }
 
 static char *
-berval_iter(void *base, void **save)
+berval_iter(void **vp)
 {
-    struct berval **bv;
+    struct berval **bv = *vp;
 
-    bv = *save ? *save : base;
-    *save = bv + 1;
+    *vp = bv + 1;
     return *bv ? (*bv)->bv_val : NULL;
 }
 
index 144d24e9124a266aa5f06252a145382f7cc3db72..71793e96c5cc31b5573c62b91bbe3fabfa35441b 100644 (file)
@@ -121,7 +121,6 @@ array_to_member_list(void *a, sudo_ldap_iter_t iter)
 {
     struct member_list *members;
     struct member *m;
-    void *save = NULL;
     char *val;
     debug_decl(bv_to_member_list, SUDOERS_DEBUG_LDAP)
 
@@ -129,7 +128,7 @@ array_to_member_list(void *a, sudo_ldap_iter_t iter)
        return NULL;
     TAILQ_INIT(members);                      
 
-    while ((val = iter(a, &save)) != NULL) {
+    while ((val = iter(&a)) != NULL) {
        if ((m = calloc(1, sizeof(*m))) == NULL)
            goto bad;
 
@@ -180,7 +179,6 @@ sudo_ldap_role_to_priv(const char *cn, void *runasusers, void *runasgroups,
     struct sudo_command *c;
     struct privilege *priv;
     struct member *m;
-    void *cmnds_save = NULL;
     char *cmnd;
     debug_decl(sudo_ldap_role_to_priv, SUDOERS_DEBUG_LDAP)
 
@@ -203,7 +201,7 @@ sudo_ldap_role_to_priv(const char *cn, void *runasusers, void *runasgroups,
     /*
      * Parse sudoCommands and add to cmndlist.
      */
-    while ((cmnd = iter(cmnds, &cmnds_save)) != NULL) {
+    while ((cmnd = iter(&cmnds)) != NULL) {
        char *args;
 
        /* Allocate storage upfront. */
@@ -275,10 +273,9 @@ sudo_ldap_role_to_priv(const char *cn, void *runasusers, void *runasgroups,
 
            /* Parse sudoOptions. */
            if (opts != NULL) {
-               void *opts_save = NULL;
                char *opt;
 
-               while ((opt = iter(opts, &opts_save)) != NULL) {
+               while ((opt = iter(&opts)) != NULL) {
                    char *var, *val;
                    int op;
 
index d932858b30d20212eefa061376ed11d80eab47b2..c0718d38540168bebeebd5bf3acfaafc7a29b599 100644 (file)
@@ -1409,12 +1409,11 @@ sudo_sss_display_bound_defaults(struct sudo_nss *nss,
 }
 
 static char *
-val_array_iter(void *base, void **save)
+val_array_iter(void **vp)
 {
-    char **val_array;
+    char **val_array = *vp;
 
-    val_array = *save ? *save : base;
-    *save = val_array + 1;
+    *vp = val_array + 1;
 
     return *val_array;
 }
index 1eb567943c5759c0cef302084356e89d9560c1ec..10286b8379eb1948d61a7c87366731386da65254 100644 (file)
@@ -17,7 +17,7 @@
 #ifndef SUDOERS_LDAP_H
 #define SUDOERS_LDAP_H
 
-typedef char * (*sudo_ldap_iter_t)(void *, void **);
+typedef char * (*sudo_ldap_iter_t)(void **);
 
 bool sudo_ldap_is_negated(char **valp);
 int sudo_ldap_parse_option(char *optstr, char **varp, char **valp);