ref: 9f01c74e8c68c78d7d7afddbff9aacc3a574d2b4
parent: 87ec4550f392180df2ccd3fc48b3ca91f3bcd09c
author: Ori Bernstein <ori@eigenstate.org>
date: Mon Jan 26 13:53:40 EST 2026
libauth: correctly terminate nsfile args with nil
--- a/sys/src/libauth/newns.c
+++ b/sys/src/libauth/newns.c
@@ -7,7 +7,6 @@
enum
{- NARG = 15, /* max number of arguments */
MAXARG = 10*ANAMELEN, /* max length of an argument */
};
@@ -97,7 +96,7 @@
nsfile(char *fn, Biobuf *b, AuthRpc *rpc, int dfd)
{int argc;
- char *cmd, *argv[NARG+1], argbuf[MAXARG*NARG];
+ char *cmd, *argv[16], argbuf[MAXARG*16];
int cdroot;
cdroot = 0;
@@ -108,7 +107,7 @@
cmd++;
if(*cmd == '#')
continue;
- argc = splitargs(cmd, argv, argbuf, NARG);
+ argc = splitargs(cmd, argv, argbuf, nelem(argv));
if(argc)
cdroot |= nsop(fn, argc, argv, rpc, dfd);
}
@@ -294,6 +293,7 @@
return 0;
unquote(argv[i]);
}
+ argv[n] = nil;
return n;
}
--
⑨