Increase max argument length from 32 to 64

上级 a0fa7973
......@@ -436,7 +436,6 @@ int
sys_exec(const char *upath, userptr<userptr<const char> > uargv)
{
ANON_REGION(__func__, &perfgroup);
static const int len = 32;
char *argv[MAXARG];
char path[DIRSIZ+1];
long r = -1;
......@@ -457,15 +456,15 @@ sys_exec(const char *upath, userptr<userptr<const char> > uargv)
if(uarg == 0)
break;
argv[i] = (char*) kmalloc(len, "execbuf");
if (argv[i]==nullptr || fetchstr(argv[i], (char*)uarg, len)<0)
argv[i] = (char*) kmalloc(MAXARGLEN, "execbuf");
if (argv[i]==nullptr || fetchstr(argv[i], (char*)uarg, MAXARGLEN)<0)
goto clean;
}
argv[i] = 0;
r = exec(path, argv, &ascope);
clean:
for (i=i-i; i >= 0; i--)
kmfree(argv[i], len);
kmfree(argv[i], MAXARGLEN);
return r;
}
......
......@@ -8,6 +8,7 @@
#define NDEV 10 // maximum major device number
#define ROOTDEV 1 // device number of file system root disk
#define MAXARG 32 // max exec arguments
#define MAXARGLEN 64 // max exec argument length
#define MAXNAME 16 // max string names
#define NEPOCH 4
#define CACHELINE 64 // cache line size
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论