Deleted Added
full compact
28c28
< __FBSDID("$FreeBSD: stable/10/usr.sbin/jail/command.c 256387 2013-10-12 17:46:13Z hrs $");
---
> __FBSDID("$FreeBSD: stable/10/usr.sbin/jail/command.c 269805 2014-08-11 08:58:35Z smh $");
271c271
< char *addr;
---
> char *addr, *extrap, *p, *val;
320c320,334
< argv = alloca(8 * sizeof(char *));
---
> argc = 0;
> val = alloca(strlen(comstring->s) + 1);
> strcpy(val, comstring->s);
> cs = val;
> extrap = NULL;
> while ((p = strchr(cs, ' ')) != NULL && strlen(p) > 1) {
> if (extrap == NULL) {
> *p = '\0';
> extrap = p + 1;
> }
> cs = p + 1;
> argc++;
> }
>
> argv = alloca((8 + argc) * sizeof(char *));
322,324c336,338
< if ((cs = strchr(comstring->s, '|'))) {
< argv[1] = alloca(cs - comstring->s + 1);
< strlcpy(argv[1], comstring->s, cs - comstring->s + 1);
---
> if ((cs = strchr(val, '|'))) {
> argv[1] = alloca(cs - val + 1);
> strlcpy(argv[1], val, cs - val + 1);
329c343
< addr = comstring->s;
---
> addr = val;
346a361,369
>
> if (!down) {
> for (cs = strtok(extrap, " "); cs; cs = strtok(NULL, " ")) {
> size_t len = strlen(cs) + 1;
> argv[argc] = alloca(len);
> strlcpy(argv[argc++], cs, len);
> }
> }
>
354c377,391
< argv = alloca(8 * sizeof(char *));
---
> argc = 0;
> val = alloca(strlen(comstring->s) + 1);
> strcpy(val, comstring->s);
> cs = val;
> extrap = NULL;
> while ((p = strchr(cs, ' ')) != NULL && strlen(p) > 1) {
> if (extrap == NULL) {
> *p = '\0';
> extrap = p + 1;
> }
> cs = p + 1;
> argc++;
> }
>
> argv = alloca((8 + argc) * sizeof(char *));
356,358c393,395
< if ((cs = strchr(comstring->s, '|'))) {
< argv[1] = alloca(cs - comstring->s + 1);
< strlcpy(argv[1], comstring->s, cs - comstring->s + 1);
---
> if ((cs = strchr(val, '|'))) {
> argv[1] = alloca(cs - val + 1);
> strlcpy(argv[1], val, cs - val + 1);
363c400
< addr = comstring->s;
---
> addr = val;
372a410,418
>
> if (!down) {
> for (cs = strtok(extrap, " "); cs; cs = strtok(NULL, " ")) {
> size_t len = strlen(cs) + 1;
> argv[argc] = alloca(len);
> strlcpy(argv[argc++], cs, len);
> }
> }
>