#include "sudoers.h"
#include "parse.h"
-#include "gram.h" /* for DEFAULTS */
#include "sudo_lbuf.h"
#include "sudo_dso.h"
* Parse an option string into a defaults structure.
* The members of def are pointers into optstr (which is modified).
*/
-static void
-sudo_ldap_parse_option(char *optstr, struct defaults *def)
+static int
+sudo_ldap_parse_option(char *optstr, char **varp, char **valp)
{
char *cp, *val = NULL;
char *var = optstr;
} while (isblank((unsigned char)*var));
}
}
- def->var = var;
- def->val = val;
- def->op = op;
- def->type = DEFAULTS;
- def->binding = NULL;
+ *varp = var;
+ *valp = val;
- debug_return;
+ debug_return_int(op);
}
/*
sudo_ldap_parse_options(LDAP *ld, LDAPMessage *entry)
{
struct berval **bv, **p;
- struct defaults def;
- char *copy;
+ char *copy, *var, *val;
bool ret = false;
+ int op;
debug_decl(sudo_ldap_parse_options, SUDOERS_DEBUG_LDAP)
bv = ldap_get_values_len(ld, entry, "sudoOption");
sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
goto done;
}
- sudo_ldap_parse_option(copy, &def);
- early = is_early_default(def.var);
+ op = sudo_ldap_parse_option(copy, &var, &val);
+ early = is_early_default(var);
if (early != NULL)
- set_early_default(def.var, def.val, def.op, false, early);
+ set_early_default(var, val, op, false, early);
free(copy);
}
run_early_defaults();
sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
goto done;
}
- sudo_ldap_parse_option(copy, &def);
- if (is_early_default(def.var) == NULL)
- set_default(def.var, def.val, def.op, false);
+ op = sudo_ldap_parse_option(copy, &var, &val);
+ if (is_early_default(var) == NULL)
+ set_default(var, val, op, false);
free(copy);
}
ret = true;
#include "sudoers.h"
#include "parse.h"
-#include "gram.h" /* for DEFAULTS */
#include "sudo_lbuf.h"
#include "sudo_dso.h"
* Parse an option string into a defaults structure.
* The members of def are pointers into optstr (which is modified).
*/
-static void
-sudo_sss_parse_option(char *optstr, struct defaults *def)
+static int
+sudo_sss_parse_option(char *optstr, char **varp, char **valp)
{
char *cp, *val = NULL;
char *var = optstr;
} while (isblank((unsigned char)*var));
}
}
- def->var = var;
- def->val = val;
- def->op = op;
- def->type = DEFAULTS;
- def->binding = NULL;
+ *varp = var;
+ *valp = val;
- debug_return;
+ debug_return_int(op);
}
static bool
sudo_sss_parse_options(struct sudo_sss_handle *handle, struct sss_sudo_rule *rule)
{
- int i;
- char *copy;
+ int i, op;
+ char *copy, *var, *val;
bool ret = false;
- struct defaults def;
char **val_array = NULL;
debug_decl(sudo_sss_parse_options, SUDOERS_DEBUG_SSSD);
sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
goto done;
}
- sudo_sss_parse_option(copy, &def);
- early = is_early_default(def.var);
+ op = sudo_sss_parse_option(copy, &var, &val);
+ early = is_early_default(var);
if (early != NULL)
- set_early_default(def.var, def.val, def.op, false, early);
+ set_early_default(var, val, op, false, early);
free(copy);
}
run_early_defaults();
sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
goto done;
}
- sudo_sss_parse_option(copy, &def);
- if (is_early_default(def.var) == NULL)
- set_default(def.var, def.val, def.op, false);
+ op = sudo_sss_parse_option(copy, &var, &val);
+ if (is_early_default(var) == NULL)
+ set_default(var, val, op, false);
free(copy);
}
ret = true;