2
0
mirror of https://github.com/sudo-project/sudo.git synced 2025-08-31 14:25:15 +00:00

Run callbacks once in set_default_entry() instead of each of the

store_foo() functions.
This commit is contained in:
Todd C. Miller
2016-08-08 16:47:11 -06:00
parent 14c9d203e8
commit e5a7891ec8

View File

@@ -199,7 +199,8 @@ dump_defaults(void)
}
static bool
set_default_entry(struct sudo_defs_types *def, const char *val, int op, bool quiet)
set_default_entry(struct sudo_defs_types *def, const char *val, int op,
bool quiet)
{
debug_decl(set_default_entry, SUDOERS_DEBUG_DEFAULTS)
@@ -335,8 +336,6 @@ set_default_entry(struct sudo_defs_types *def, const char *val, int op, bool qui
debug_return_bool(false);
}
def->sd_un.flag = op;
if (def->callback)
debug_return_bool(def->callback(&def->sd_un));
break;
case T_LIST:
if (!val) {
@@ -370,6 +369,8 @@ set_default_entry(struct sudo_defs_types *def, const char *val, int op, bool qui
}
break;
}
if (def->callback)
debug_return_bool(def->callback(&def->sd_un));
debug_return_bool(true);
}
@@ -797,8 +798,6 @@ store_int(const char *val, struct sudo_defs_types *def, int op)
}
def->sd_un.ival = i;
}
if (def->callback)
debug_return_bool(def->callback(&def->sd_un));
debug_return_bool(true);
}
@@ -820,8 +819,6 @@ store_uint(const char *val, struct sudo_defs_types *def, int op)
}
def->sd_un.uival = u;
}
if (def->callback)
debug_return_bool(def->callback(&def->sd_un));
debug_return_bool(true);
}
@@ -841,8 +838,6 @@ store_float(const char *val, struct sudo_defs_types *def, int op)
/* XXX - should check against HUGE_VAL */
def->sd_un.fval = d;
}
if (def->callback)
debug_return_bool(def->callback(&def->sd_un));
debug_return_bool(true);
}
@@ -869,8 +864,6 @@ store_tuple(const char *val, struct sudo_defs_types *def, int op)
if (v->sval == NULL)
debug_return_bool(false);
}
if (def->callback)
debug_return_bool(def->callback(&def->sd_un));
debug_return_bool(true);
}
@@ -888,8 +881,6 @@ store_str(const char *val, struct sudo_defs_types *def, int op)
debug_return_int(-1);
}
}
if (def->callback)
debug_return_int(def->callback(&def->sd_un));
debug_return_int(true);
}
@@ -1002,8 +993,6 @@ store_mode(const char *val, struct sudo_defs_types *def, int op)
}
def->sd_un.mode = mode;
}
if (def->callback)
debug_return_bool(def->callback(&def->sd_un));
debug_return_bool(true);
}