Avoid passing around struct defaults when it is not needed. As a
result, we no longer need to include gram.h in the LDAP and SSSD backends.
This commit is contained in:
@@ -119,7 +119,6 @@ struct early_default {
|
|||||||
/*
|
/*
|
||||||
* Prototypes
|
* Prototypes
|
||||||
*/
|
*/
|
||||||
struct defaults;
|
|
||||||
void dump_default(void);
|
void dump_default(void);
|
||||||
bool check_defaults(int what, bool quiet);
|
bool check_defaults(int what, bool quiet);
|
||||||
bool init_defaults(void);
|
bool init_defaults(void);
|
||||||
|
@@ -61,7 +61,6 @@
|
|||||||
|
|
||||||
#include "sudoers.h"
|
#include "sudoers.h"
|
||||||
#include "parse.h"
|
#include "parse.h"
|
||||||
#include "gram.h" /* for DEFAULTS */
|
|
||||||
#include "sudo_lbuf.h"
|
#include "sudo_lbuf.h"
|
||||||
#include "sudo_dso.h"
|
#include "sudo_dso.h"
|
||||||
|
|
||||||
@@ -1046,8 +1045,8 @@ sudo_ldap_check_bool(LDAP *ld, LDAPMessage *entry, char *option)
|
|||||||
* Parse an option string into a defaults structure.
|
* Parse an option string into a defaults structure.
|
||||||
* The members of def are pointers into optstr (which is modified).
|
* The members of def are pointers into optstr (which is modified).
|
||||||
*/
|
*/
|
||||||
static void
|
static int
|
||||||
sudo_ldap_parse_option(char *optstr, struct defaults *def)
|
sudo_ldap_parse_option(char *optstr, char **varp, char **valp)
|
||||||
{
|
{
|
||||||
char *cp, *val = NULL;
|
char *cp, *val = NULL;
|
||||||
char *var = optstr;
|
char *var = optstr;
|
||||||
@@ -1094,13 +1093,10 @@ sudo_ldap_parse_option(char *optstr, struct defaults *def)
|
|||||||
} while (isblank((unsigned char)*var));
|
} while (isblank((unsigned char)*var));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
def->var = var;
|
*varp = var;
|
||||||
def->val = val;
|
*valp = val;
|
||||||
def->op = op;
|
|
||||||
def->type = DEFAULTS;
|
|
||||||
def->binding = NULL;
|
|
||||||
|
|
||||||
debug_return;
|
debug_return_int(op);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1111,9 +1107,9 @@ static bool
|
|||||||
sudo_ldap_parse_options(LDAP *ld, LDAPMessage *entry)
|
sudo_ldap_parse_options(LDAP *ld, LDAPMessage *entry)
|
||||||
{
|
{
|
||||||
struct berval **bv, **p;
|
struct berval **bv, **p;
|
||||||
struct defaults def;
|
char *copy, *var, *val;
|
||||||
char *copy;
|
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
|
int op;
|
||||||
debug_decl(sudo_ldap_parse_options, SUDOERS_DEBUG_LDAP)
|
debug_decl(sudo_ldap_parse_options, SUDOERS_DEBUG_LDAP)
|
||||||
|
|
||||||
bv = ldap_get_values_len(ld, entry, "sudoOption");
|
bv = ldap_get_values_len(ld, entry, "sudoOption");
|
||||||
@@ -1128,10 +1124,10 @@ sudo_ldap_parse_options(LDAP *ld, LDAPMessage *entry)
|
|||||||
sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
|
sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
sudo_ldap_parse_option(copy, &def);
|
op = sudo_ldap_parse_option(copy, &var, &val);
|
||||||
early = is_early_default(def.var);
|
early = is_early_default(var);
|
||||||
if (early != NULL)
|
if (early != NULL)
|
||||||
set_early_default(def.var, def.val, def.op, false, early);
|
set_early_default(var, val, op, false, early);
|
||||||
free(copy);
|
free(copy);
|
||||||
}
|
}
|
||||||
run_early_defaults();
|
run_early_defaults();
|
||||||
@@ -1142,9 +1138,9 @@ sudo_ldap_parse_options(LDAP *ld, LDAPMessage *entry)
|
|||||||
sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
|
sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
sudo_ldap_parse_option(copy, &def);
|
op = sudo_ldap_parse_option(copy, &var, &val);
|
||||||
if (is_early_default(def.var) == NULL)
|
if (is_early_default(var) == NULL)
|
||||||
set_default(def.var, def.val, def.op, false);
|
set_default(var, val, op, false);
|
||||||
free(copy);
|
free(copy);
|
||||||
}
|
}
|
||||||
ret = true;
|
ret = true;
|
||||||
|
@@ -45,7 +45,6 @@
|
|||||||
|
|
||||||
#include "sudoers.h"
|
#include "sudoers.h"
|
||||||
#include "parse.h"
|
#include "parse.h"
|
||||||
#include "gram.h" /* for DEFAULTS */
|
|
||||||
#include "sudo_lbuf.h"
|
#include "sudo_lbuf.h"
|
||||||
#include "sudo_dso.h"
|
#include "sudo_dso.h"
|
||||||
|
|
||||||
@@ -1121,8 +1120,8 @@ sudo_sss_check_command(struct sudo_sss_handle *handle,
|
|||||||
* Parse an option string into a defaults structure.
|
* Parse an option string into a defaults structure.
|
||||||
* The members of def are pointers into optstr (which is modified).
|
* The members of def are pointers into optstr (which is modified).
|
||||||
*/
|
*/
|
||||||
static void
|
static int
|
||||||
sudo_sss_parse_option(char *optstr, struct defaults *def)
|
sudo_sss_parse_option(char *optstr, char **varp, char **valp)
|
||||||
{
|
{
|
||||||
char *cp, *val = NULL;
|
char *cp, *val = NULL;
|
||||||
char *var = optstr;
|
char *var = optstr;
|
||||||
@@ -1169,22 +1168,18 @@ sudo_sss_parse_option(char *optstr, struct defaults *def)
|
|||||||
} while (isblank((unsigned char)*var));
|
} while (isblank((unsigned char)*var));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
def->var = var;
|
*varp = var;
|
||||||
def->val = val;
|
*valp = val;
|
||||||
def->op = op;
|
|
||||||
def->type = DEFAULTS;
|
|
||||||
def->binding = NULL;
|
|
||||||
|
|
||||||
debug_return;
|
debug_return_int(op);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
sudo_sss_parse_options(struct sudo_sss_handle *handle, struct sss_sudo_rule *rule)
|
sudo_sss_parse_options(struct sudo_sss_handle *handle, struct sss_sudo_rule *rule)
|
||||||
{
|
{
|
||||||
int i;
|
int i, op;
|
||||||
char *copy;
|
char *copy, *var, *val;
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
struct defaults def;
|
|
||||||
char **val_array = NULL;
|
char **val_array = NULL;
|
||||||
debug_decl(sudo_sss_parse_options, SUDOERS_DEBUG_SSSD);
|
debug_decl(sudo_sss_parse_options, SUDOERS_DEBUG_SSSD);
|
||||||
|
|
||||||
@@ -1210,10 +1205,10 @@ sudo_sss_parse_options(struct sudo_sss_handle *handle, struct sss_sudo_rule *rul
|
|||||||
sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
|
sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
sudo_sss_parse_option(copy, &def);
|
op = sudo_sss_parse_option(copy, &var, &val);
|
||||||
early = is_early_default(def.var);
|
early = is_early_default(var);
|
||||||
if (early != NULL)
|
if (early != NULL)
|
||||||
set_early_default(def.var, def.val, def.op, false, early);
|
set_early_default(var, val, op, false, early);
|
||||||
free(copy);
|
free(copy);
|
||||||
}
|
}
|
||||||
run_early_defaults();
|
run_early_defaults();
|
||||||
@@ -1224,9 +1219,9 @@ sudo_sss_parse_options(struct sudo_sss_handle *handle, struct sss_sudo_rule *rul
|
|||||||
sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
|
sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
sudo_sss_parse_option(copy, &def);
|
op = sudo_sss_parse_option(copy, &var, &val);
|
||||||
if (is_early_default(def.var) == NULL)
|
if (is_early_default(var) == NULL)
|
||||||
set_default(def.var, def.val, def.op, false);
|
set_default(var, val, op, false);
|
||||||
free(copy);
|
free(copy);
|
||||||
}
|
}
|
||||||
ret = true;
|
ret = true;
|
||||||
|
Reference in New Issue
Block a user