diff --git a/qa/kern/brk.c b/qa/kern/brk.c index 4fa24aa..b707195 100644 --- a/qa/kern/brk.c +++ b/qa/kern/brk.c @@ -23,7 +23,7 @@ main(void) { long b, b1; - b = create("#0/brk", -1, 16*1024*1024); + b = create("#0/brk/set", -1, 16*1024*1024); if(b >= 0){ print("FAIL: create returned fd %d.\n", b); exits("FAIL"); diff --git a/sys/src/kern/port/devself.c b/sys/src/kern/port/devself.c index 6839958..1648461 100644 --- a/sys/src/kern/port/devself.c +++ b/sys/src/kern/port/devself.c @@ -63,7 +63,7 @@ Cmdtab proccmd[] = { static Dirtab selfdir[]={ ".", {Qdir, 0, QTDIR}, 0, DMDIR|0777, - "brk", {Qbrk}, 0, 0, + "brk", {Qbrk, 0, QTDIR}, 0, DMDIR|0300, "pid", {Qpid}, 0, 0400, "ppid", {Qppid}, 0, 0400, "pgrpid", {Qpgrpid}, 0, 0400, @@ -197,6 +197,8 @@ selfcreate(Chan* c, char* name, unsigned long omode, unsigned long perm) default: error(Eperm); case Qbrk: + if(strcmp(name, "set") != 0) + error(Eperm); e = (long)grow_bss(perm); errorl(nil, ~e); } diff --git a/sys/src/lib/c/9sys/sbrk.c b/sys/src/lib/c/9sys/sbrk.c index b42a77e..df8976d 100644 --- a/sys/src/lib/c/9sys/sbrk.c +++ b/sys/src/lib/c/9sys/sbrk.c @@ -18,7 +18,7 @@ enum Round = 7 }; -#define brk_(p) ((uintptr_t)~create("#0/brk", -1, p)) +#define brk_(p) ((uintptr_t)~create("#0/brk/set", -1, p)) int brk(void *p)