]> granicus.if.org Git - sudo/commitdiff
Move cvtsudoers string functions into cvtsudoers.c
authorTodd C. Miller <Todd.Miller@sudo.ws>
Wed, 21 Mar 2018 19:29:47 +0000 (13:29 -0600)
committerTodd C. Miller <Todd.Miller@sudo.ws>
Wed, 21 Mar 2018 19:29:47 +0000 (13:29 -0600)
plugins/sudoers/cvtsudoers.c
plugins/sudoers/cvtsudoers.h
plugins/sudoers/cvtsudoers_ldif.c

index cbbc0803ecf0a4dcfe7f84742d988dd59399f91f..dfa220e3ec07bbe0669083e6627799e39df813b3 100644 (file)
@@ -77,7 +77,7 @@ static void help(void) __attribute__((__noreturn__));
 static void usage(int);
 static bool convert_sudoers_sudoers(const char *output_file, struct cvtsudoers_config *conf);
 static bool parse_sudoers(const char *input_file, struct cvtsudoers_config *conf);
-static bool parse_filter(char *expression);
+static bool cvtsudoers_parse_filter(char *expression);
 static bool alias_remove_unused(void);
 static struct cvtsudoers_config *cvtsudoers_conf_read(const char *conf_file);
 static void cvtsudoers_conf_free(struct cvtsudoers_config *conf);
@@ -236,7 +236,7 @@ main(int argc, char *argv[])
     }
     if (conf->filter != NULL) {
        /* We always expand aliases when filtering (may change in future). */
-       if (!parse_filter(conf->filter))
+       if (!cvtsudoers_parse_filter(conf->filter))
            usage(1);
     }
 
@@ -437,10 +437,10 @@ cvtsudoers_conf_free(struct cvtsudoers_config *conf)
 }
 
 static bool
-parse_filter(char *expression)
+cvtsudoers_parse_filter(char *expression)
 {
     char *last = NULL, *cp = expression;
-    debug_decl(parse_filter, SUDOERS_DEBUG_UTIL)
+    debug_decl(cvtsudoers_parse_filter, SUDOERS_DEBUG_UTIL)
 
     if (filters == NULL) {
        if ((filters = malloc(sizeof(*filters))) == NULL) {
@@ -490,6 +490,59 @@ parse_filter(char *expression)
     debug_return_bool(true);
 }
 
+struct cvtsudoers_string *
+cvtsudoers_string_alloc(const char *s)
+{
+    struct cvtsudoers_string *ls;
+    debug_decl(cvtsudoers_string_alloc, SUDOERS_DEBUG_UTIL)
+
+    if ((ls = malloc(sizeof(*ls))) != NULL) {
+       if ((ls->str = strdup(s)) == NULL) {
+           free(ls);
+           ls = NULL;
+       }
+    }
+
+    debug_return_ptr(ls);
+}
+
+void
+cvtsudoers_string_free(struct cvtsudoers_string *ls)
+{
+    free(ls->str);
+    free(ls);
+}
+
+struct cvtsudoers_str_list *
+str_list_alloc(void)
+{
+    struct cvtsudoers_str_list *strlist;
+    debug_decl(str_list_alloc, SUDOERS_DEBUG_UTIL)
+
+    strlist = malloc(sizeof(*strlist));
+    STAILQ_INIT(strlist);
+    strlist->refcnt = 1;
+
+    debug_return_ptr(strlist);
+}
+
+void
+str_list_free(void *v)
+{
+    struct cvtsudoers_str_list *strlist = v;
+    struct cvtsudoers_string *first;
+    debug_decl(str_list_free, SUDOERS_DEBUG_UTIL)
+
+    if (--strlist->refcnt == 0) {
+       while ((first = STAILQ_FIRST(strlist)) != NULL) {
+           STAILQ_REMOVE_HEAD(strlist, entries);
+           cvtsudoers_string_free(first);
+       }
+       free(strlist);
+    }
+    debug_return;
+}
+
 static bool
 parse_sudoers(const char *input_file, struct cvtsudoers_config *conf)
 {
index efce454fdba699ec81b5078881bbebe756c6cff9..acc3565763290f8b3522d251449ab4702d4ec77e 100644 (file)
@@ -26,7 +26,6 @@ enum sudoers_formats {
 
 /*
  * Simple string list with optional reference count.
- * XXX - move this so fmtsudoers can use it
  */
 struct cvtsudoers_string {
     STAILQ_ENTRY(cvtsudoers_string) entries;
index c9ef0731fc7c6767d8f9cdf7da5485e579c7b577..6bc8685c3a8ddb0c794ca2563697a637efc04b80 100644 (file)
@@ -528,60 +528,6 @@ struct sudo_role {
 };
 STAILQ_HEAD(sudo_role_list, sudo_role);
 
-/* XXX - move to cvtsudoers.c */
-struct cvtsudoers_string *
-cvtsudoers_string_alloc(const char *s)
-{
-    struct cvtsudoers_string *ls;
-    debug_decl(cvtsudoers_string_alloc, SUDOERS_DEBUG_UTIL)
-
-    if ((ls = malloc(sizeof(*ls))) != NULL) {
-       if ((ls->str = strdup(s)) == NULL) {
-           free(ls);
-           ls = NULL;
-       }
-    }
-
-    debug_return_ptr(ls);
-}
-
-void
-cvtsudoers_string_free(struct cvtsudoers_string *ls)
-{
-    free(ls->str);
-    free(ls);
-}
-
-struct cvtsudoers_str_list *
-str_list_alloc(void)
-{
-    struct cvtsudoers_str_list *strlist;
-    debug_decl(str_list_alloc, SUDOERS_DEBUG_UTIL)
-
-    strlist = malloc(sizeof(*strlist));
-    STAILQ_INIT(strlist);
-    strlist->refcnt = 1;
-
-    debug_return_ptr(strlist);
-}
-
-void
-str_list_free(void *v)
-{
-    struct cvtsudoers_str_list *strlist = v;
-    struct cvtsudoers_string *first;
-    debug_decl(str_list_free, SUDOERS_DEBUG_UTIL)
-
-    if (--strlist->refcnt == 0) {
-       while ((first = STAILQ_FIRST(strlist)) != NULL) {
-           STAILQ_REMOVE_HEAD(strlist, entries);
-           cvtsudoers_string_free(first);
-       }
-       free(strlist);
-    }
-    debug_return;
-}
-
 static struct sudo_role *
 sudo_role_alloc(void)
 {
@@ -677,7 +623,7 @@ ldif_store_string(const char *str, struct cvtsudoers_str_list *strlist, bool sor
  * Takes a pointer to a struct cvtsudoers_string *.
  * Returns the string or NULL if we've reached the end.
  */
-char *
+static char *
 cvtsudoers_string_iter(void **vp)
 {
     struct cvtsudoers_string *ls = *vp;