]> granicus.if.org Git - sudo/commitdiff
Fix a mismatch between sudo_settings and settings_pairs that causes
authorTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 5 Mar 2010 19:38:42 +0000 (14:38 -0500)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 5 Mar 2010 19:38:42 +0000 (14:38 -0500)
some settings to get the wrong values.

src/parse_args.c

index 334d4ea2fdb17c438ac161e0dc05b600d73a03fe..2a630e5fc5994a7742fe59795b951d4e81e512a6 100644 (file)
@@ -88,7 +88,6 @@ static struct sudo_settings {
     struct name_value_pair p;
     struct name_value_pair r;
     struct name_value_pair t;
-    struct name_value_pair U;
     struct name_value_pair u;
 } sudo_settings = {
     { "bsdauth_type" },
@@ -112,12 +111,13 @@ static struct name_value_pair *setting_pairs[] = {
     &sudo_settings.g,
     &sudo_settings.H,
     &sudo_settings.i,
+    &sudo_settings.k,
     &sudo_settings.p,
     &sudo_settings.r,
     &sudo_settings.t,
     &sudo_settings.u
 };
-#define settings_size (sizeof(setting_pairs) / sizeof(struct name_value_pair))
+#define settings_size (sizeof(setting_pairs) / sizeof(setting_pairs[0]))
 
 /*
  * Command line argument parsing.
@@ -372,6 +372,8 @@ parse_args(int argc, char **argv, int *nargc, char ***nargv, char ***settingsp,
     settings = emalloc2(settings_size + 1, sizeof (char *));
     for (i = 0, j = 0; i < settings_size; i++) {
        if (setting_pairs[i]->value) {
+           sudo_debug(9, "settings: %s=%s", setting_pairs[i]->name,
+               setting_pairs[i]->value);
            settings[j++] = fmt_string(setting_pairs[i]->name,
                setting_pairs[i]->value);
        }