From 2b150925dce8c32646ed9ffac11a100a0161e75b Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Thu, 28 Jul 2016 06:05:39 -0600 Subject: [PATCH] Flag settings have a NULL value so we can't use that to test whether an entry in struct early_default is set or not. Add a "set" member and use that instead. --- plugins/sudoers/defaults.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/sudoers/defaults.c b/plugins/sudoers/defaults.c index 910fb5f1e..f9630c49e 100644 --- a/plugins/sudoers/defaults.c +++ b/plugins/sudoers/defaults.c @@ -82,7 +82,8 @@ static struct strmap priorities[] = { struct early_default { const char *var; const char *val; - int op; + short op; + short set; }; static struct early_default early_defaults[] = { @@ -681,6 +682,7 @@ store_early_default(struct defaults *def, int what) default_binding_matches(def, what)) { early->val = def->val; early->op = def->op; + early->set = true; } debug_return_bool(true); } @@ -696,10 +698,10 @@ apply_early_defaults(bool quiet) debug_decl(apply_early_defaults, SUDOERS_DEBUG_DEFAULTS) for (early = early_defaults; early->var != NULL; early++) { - if (early->val != NULL) { + if (early->set) { if (!set_default(early->var, early->val, early->op, quiet)) rc = false; - early->val = NULL; /* clean state for next run */ + early->set = false; /* clean state for next run */ } } debug_return_bool(rc); -- 2.40.0