MFC r279083:
Fix the logic for skipping parameters (with -s) that have "jailsys" parents (such as host.hostname); these were being skipped all the time. That it went this long without anyone noticing is a sign that this feature isn't actually used by anyone, but it's there so it might as well work. MFC r279123: Allow for parameters added with the JP_OPT flag to not exist. That's why the flag exists in the first place.
This commit is contained in:
parent
23006cc982
commit
4e65f612d1
@ -78,7 +78,7 @@ static void quoted_print(char *str);
|
|||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
char *dot, *ep, *jname;
|
char *dot, *ep, *jname, *pname;
|
||||||
int c, i, jflags, jid, lastjid, pflags, spc;
|
int c, i, jflags, jid, lastjid, pflags, spc;
|
||||||
|
|
||||||
jname = NULL;
|
jname = NULL;
|
||||||
@ -178,10 +178,11 @@ main(int argc, char **argv)
|
|||||||
for (i = 0; i < nparams; i++) {
|
for (i = 0; i < nparams; i++) {
|
||||||
if ((params[i].jp_flags & JP_USER) &&
|
if ((params[i].jp_flags & JP_USER) &&
|
||||||
(dot = strchr(params[i].jp_name, '.'))) {
|
(dot = strchr(params[i].jp_name, '.'))) {
|
||||||
*dot = 0;
|
pname = alloca((dot - params[i].jp_name) + 1);
|
||||||
param_parent[i] = add_param(params[i].jp_name,
|
strlcpy(pname, params[i].jp_name,
|
||||||
|
(dot - params[i].jp_name) + 1);
|
||||||
|
param_parent[i] = add_param(pname,
|
||||||
NULL, (size_t)0, NULL, JP_OPT);
|
NULL, (size_t)0, NULL, JP_OPT);
|
||||||
*dot = '.';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -293,10 +294,8 @@ add_param(const char *name, void *value, size_t valuelen,
|
|||||||
param->jp_flags |= flags;
|
param->jp_flags |= flags;
|
||||||
return param - params;
|
return param - params;
|
||||||
}
|
}
|
||||||
if (jailparam_init(param, name) < 0)
|
if (jailparam_init(param, name) < 0 ||
|
||||||
errx(1, "%s", jail_errmsg);
|
(value != NULL ? jailparam_import_raw(param, value, valuelen)
|
||||||
param->jp_flags = flags;
|
|
||||||
if ((value != NULL ? jailparam_import_raw(param, value, valuelen)
|
|
||||||
: jailparam_import(param, value)) < 0) {
|
: jailparam_import(param, value)) < 0) {
|
||||||
if (flags & JP_OPT) {
|
if (flags & JP_OPT) {
|
||||||
nparams--;
|
nparams--;
|
||||||
@ -304,6 +303,7 @@ add_param(const char *name, void *value, size_t valuelen,
|
|||||||
}
|
}
|
||||||
errx(1, "%s", jail_errmsg);
|
errx(1, "%s", jail_errmsg);
|
||||||
}
|
}
|
||||||
|
param->jp_flags = flags;
|
||||||
return param - params;
|
return param - params;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user