]> git.ozlabs.org Git - petitboot/commitdiff
Zero parser globals before use
authorGeoff Levand <geoffrey.levand@am.sony.com>
Thu, 9 Jul 2009 17:40:44 +0000 (10:40 -0700)
committerGeoff Levand <geoffrey.levand@am.sony.com>
Thu, 9 Jul 2009 17:40:44 +0000 (10:40 -0700)
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
discover/kboot-parser.c
discover/parser-conf.c
discover/parser-conf.h
discover/yaboot-parser.c

index e688c22d512fde7bf91736ba7808f38fd52f3c4c..23d48a401f8a82cdff8daf4035f2769d4ccc6971 100644 (file)
@@ -137,6 +137,7 @@ static int kboot_parse(struct discover_context *dc)
 
        conf->dc = dc;
        conf->global_options = kboot_global_options,
+       conf_init_global_options(conf);
        conf->conf_files = kboot_conf_files,
        conf->process_pair = kboot_process_pair;
        conf->parser_info = (void *)kboot_ignored_names,
index 14f847d7b31ec8ba00ebdef89b0727c53de81a38..88e96b7bee9e149d8e0cc58f93a156b9779c7193 100644 (file)
@@ -120,6 +120,18 @@ int conf_param_in_list(const char *const *list, const char *param)
        return 0;
 }
 
+/**
+ * conf_init_global_options - Zero the global option table.
+ */
+
+void conf_init_global_options(struct conf_context *conf)
+{
+       int i;
+
+       for (i = 0; conf->global_options[i].name; i++)
+               conf->global_options[i].value = NULL;
+}
+
 /**
  * conf_set_global_option - Set a value in the global option table.
  *
@@ -136,7 +148,7 @@ int conf_set_global_option(struct conf_context *conf, const char *name,
                if (streq(name, conf->global_options[i].name)) {
                        conf->global_options[i].value
                                = talloc_strdup(conf, value);
-                       pb_log("%s: %s:%s\n", __func__, name, value);
+                       pb_log("%s: @%s@%s@\n", __func__, name, value);
                        return 1;
                }
        }
@@ -158,8 +170,11 @@ const char *conf_get_global_option(struct conf_context *conf,
        int i;
 
        for (i = 0; conf->global_options[i].name ;i++)
-               if (streq(name, conf->global_options[i].name))
+               if (streq(name, conf->global_options[i].name)) {
+                       pb_log("%s: @%s@%s@\n", __func__, name,
+                               conf->global_options[i].value);
                        return conf->global_options[i].value;
+               }
 
        assert(0 && "unknown global name");
        return NULL;
index 09015d1734e8df4fedc629a6bf0cbc16f8855557..3325faf4f3f8331731d2e3271c50fc863ce94885 100644 (file)
@@ -41,6 +41,7 @@ struct conf_context {
 int conf_parse(struct conf_context *conf);
 char *conf_get_param_pair(char *str, char **name_out, char **value_out,
                char terminator);
+void conf_init_global_options(struct conf_context *conf);
 const char *conf_get_global_option(struct conf_context *conf,
        const char *name);
 int conf_set_global_option(struct conf_context *conf, const char *name,
index d9f2aff5924f6e250074722c97dff0deaa3a66de..5224bb3dd23ca5162806a226742761552c864b20 100644 (file)
@@ -240,6 +240,7 @@ static int yaboot_parse(struct discover_context *dc)
 
        conf->dc = dc;
        conf->global_options = yaboot_global_options,
+       conf_init_global_options(conf);
        conf->conf_files = yaboot_conf_files,
        conf->process_pair = yaboot_process_pair;
        conf->finish = yaboot_finish;