Whamcloud - gitweb
AOSP: Move system_shared_libs into target.bionic clause
[tools/e2fsprogs.git] / lib / support / profile.c
index c4528c8..f54739e 100644 (file)
@@ -58,6 +58,7 @@
 #endif
 #include <time.h>
 #include <string.h>
+#include <strings.h>
 #include <errno.h>
 #include <ctype.h>
 #include <limits.h>
@@ -300,9 +301,9 @@ errout:
 }
 
 errcode_t
-profile_init(const char **files, profile_t *ret_profile)
+profile_init(const char * const *files, profile_t *ret_profile)
 {
-       const char **fs;
+       const char * const *fs;
        profile_t profile;
        prf_file_t  new_file, *last;
        errcode_t retval = 0;
@@ -1092,6 +1093,7 @@ errcode_t profile_create_node(const char *name, const char *value,
        if (!new)
                return ENOMEM;
        memset(new, 0, sizeof(struct profile_node));
+       new->magic = PROF_MAGIC_NODE;
        new->name = strdup(name);
        if (new->name == 0) {
            profile_free_node(new);
@@ -1104,14 +1106,13 @@ errcode_t profile_create_node(const char *name, const char *value,
                    return ENOMEM;
                }
        }
-       new->magic = PROF_MAGIC_NODE;
 
        *ret_node = new;
        return 0;
 }
 
 /*
- * This function verifies that all of the representation invarients of
+ * This function verifies that all of the representation invariants of
  * the profile are true.  If not, we have a programming bug somewhere,
  * probably in this file.
  */
@@ -1361,7 +1362,7 @@ errcode_t profile_node_iterator(void **iter_p, struct profile_node **ret_node,
        }
 get_new_file:
        if (iter->node == 0) {
-               if (iter->file == 0 ||
+               if (iter->file == NULL ||
                    (iter->flags & PROFILE_ITER_FINAL_SEEN)) {
                        profile_iterator_free(iter_p);
                        if (ret_node)
@@ -1375,7 +1376,8 @@ get_new_file:
                if ((retval = profile_update_file(iter->file))) {
                    if (retval == ENOENT || retval == EACCES) {
                        /* XXX memory leak? */
-                       iter->file = iter->file->next;
+                       if (iter->file)
+                           iter->file = iter->file->next;
                        skip_num = 0;
                        retval = 0;
                        goto get_new_file;
@@ -1404,7 +1406,8 @@ get_new_file:
                                iter->flags |= PROFILE_ITER_FINAL_SEEN;
                }
                if (!section) {
-                       iter->file = iter->file->next;
+                       if (iter->file)
+                               iter->file = iter->file->next;
                        skip_num = 0;
                        goto get_new_file;
                }
@@ -1434,13 +1437,15 @@ get_new_file:
        }
        iter->num++;
        if (!p) {
-               iter->file = iter->file->next;
+               if (iter->file)
+                       iter->file = iter->file->next;
                iter->node = 0;
                skip_num = 0;
                goto get_new_file;
        }
        if ((iter->node = p->next) == NULL)
-               iter->file = iter->file->next;
+               if (iter->file)
+                       iter->file = iter->file->next;
        if (ret_node)
                *ret_node = p;
        if (ret_name)