diff options
author | jamie <jamie@FreeBSD.org> | 2012-08-23 19:39:23 +0000 |
---|---|---|
committer | jamie <jamie@FreeBSD.org> | 2012-08-23 19:39:23 +0000 |
commit | 44f6adcfe508d818ffa24b55aa971bdab966465c (patch) | |
tree | 95e3fb7174afa20ab61e06ae8440c684eab672fe /usr.sbin/jail | |
parent | 587ce5b6a3a13d38b667f50272fe8ddf80b55acd (diff) | |
download | FreeBSD-src-44f6adcfe508d818ffa24b55aa971bdab966465c.zip FreeBSD-src-44f6adcfe508d818ffa24b55aa971bdab966465c.tar.gz |
Partially roll back r239601 - keep parameter strings both length-delimited
and null-terminated at the same time, because they're later passed to
libjail as null-terminated. That means I also need to add a nul byte when
comma-combining array parameters.
MFC after: 6 days
Diffstat (limited to 'usr.sbin/jail')
-rw-r--r-- | usr.sbin/jail/config.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/usr.sbin/jail/config.c b/usr.sbin/jail/config.c index 508f28b..ec96c0c 100644 --- a/usr.sbin/jail/config.c +++ b/usr.sbin/jail/config.c @@ -597,6 +597,7 @@ check_intparams(struct cfjail *j) "ip4.addr: bad netmask \"%s\"", cs); error = -1; } + *cs = '\0'; s->len = cs - s->s; } } @@ -620,6 +621,7 @@ check_intparams(struct cfjail *j) cs); error = -1; } + *cs = '\0'; s->len = cs - s->s; } } @@ -713,11 +715,10 @@ import_params(struct cfjail *j) cs = value; TAILQ_FOREACH_SAFE(s, &p->val, tq, ts) { memcpy(cs, s->s, s->len); - if (ts != NULL) { - cs += s->len + 1; - cs[-1] = ','; - } + cs += s->len + 1; + cs[-1] = ','; } + value[vallen - 1] = '\0'; } if (jailparam_import(jp, value) < 0) { error = -1; |