summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorjamie <jamie@FreeBSD.org>2015-02-27 02:53:44 +0000
committerjamie <jamie@FreeBSD.org>2015-02-27 02:53:44 +0000
commit4e65f612d1a3025d2dfc18ed97357f22e68299ac (patch)
tree60d33dadd1421ae767faa7e471ebd1570bded594 /usr.sbin
parent23006cc98220f71e10c2aa60281f449e7d57c787 (diff)
downloadFreeBSD-src-4e65f612d1a3025d2dfc18ed97357f22e68299ac.zip
FreeBSD-src-4e65f612d1a3025d2dfc18ed97357f22e68299ac.tar.gz
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.
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/jls/jls.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/usr.sbin/jls/jls.c b/usr.sbin/jls/jls.c
index 3bcc566..b1e28fb 100644
--- a/usr.sbin/jls/jls.c
+++ b/usr.sbin/jls/jls.c
@@ -78,7 +78,7 @@ static void quoted_print(char *str);
int
main(int argc, char **argv)
{
- char *dot, *ep, *jname;
+ char *dot, *ep, *jname, *pname;
int c, i, jflags, jid, lastjid, pflags, spc;
jname = NULL;
@@ -178,10 +178,11 @@ main(int argc, char **argv)
for (i = 0; i < nparams; i++) {
if ((params[i].jp_flags & JP_USER) &&
(dot = strchr(params[i].jp_name, '.'))) {
- *dot = 0;
- param_parent[i] = add_param(params[i].jp_name,
+ pname = alloca((dot - params[i].jp_name) + 1);
+ 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);
- *dot = '.';
}
}
}
@@ -293,10 +294,8 @@ add_param(const char *name, void *value, size_t valuelen,
param->jp_flags |= flags;
return param - params;
}
- if (jailparam_init(param, name) < 0)
- errx(1, "%s", jail_errmsg);
- param->jp_flags = flags;
- if ((value != NULL ? jailparam_import_raw(param, value, valuelen)
+ if (jailparam_init(param, name) < 0 ||
+ (value != NULL ? jailparam_import_raw(param, value, valuelen)
: jailparam_import(param, value)) < 0) {
if (flags & JP_OPT) {
nparams--;
@@ -304,6 +303,7 @@ add_param(const char *name, void *value, size_t valuelen,
}
errx(1, "%s", jail_errmsg);
}
+ param->jp_flags = flags;
return param - params;
}
OpenPOWER on IntegriCloud