u9fs: cumulative patch: 1) close transient fds 2) rx->uname = sp->t.suid in p9any 3) use proper fcall fid/afid in p9any read/write/clunk. 4) ANSI style isfrog[] Reference: /n/sources/patch/u9fs-close Date: Wed Mar 4 11:56:03 CET 2015 Signed-off-by: yarikos@gmail.com --- /sys/src/cmd/unix/u9fs/authp9any.c Wed Mar 4 11:43:18 2015 +++ /sys/src/cmd/unix/u9fs/authp9any.c Wed Mar 4 11:43:13 2015 @@ -306,6 +306,7 @@ if((n = readn(fd, abuf, sizeof(abuf)-1)) < 0) sysfatal("can't read key file '%s'", af); + close(fd); if (n > 0 && abuf[n - 1] == '\n') n--; abuf[n] = '\0'; @@ -369,7 +370,10 @@ fprint(2, "p9anyattach: afid %d state %d\n", rx->afid, sp->state); if (sp->state == Established && strcmp(rx->uname, sp->uname) == 0 && strcmp(rx->aname, sp->aname) == 0) + { + rx->uname = sp->t.suid; return nil; + } return "authentication failed"; } @@ -392,7 +396,7 @@ char *ep; Fid *f; - f = oldauthfid(rx->afid, (void **)&sp, &ep); + f = oldauthfid(rx->fid, (void **)&sp, &ep); if (f == nil) return ep; if (chatty9p) @@ -437,7 +441,7 @@ Fid *f; - f = oldauthfid(rx->afid, (void **)&sp, &ep); + f = oldauthfid(rx->fid, (void **)&sp, &ep); if (f == nil) return ep; if (chatty9p) @@ -515,7 +519,7 @@ AuthSession *sp; char *ep; - f = oldauthfid(rx->afid, (void **)&sp, &ep); + f = oldauthfid(rx->fid, (void **)&sp, &ep); if (f == nil) return ep; if (chatty9p) --- /sys/src/cmd/unix/u9fs/u9fs.c Wed Mar 4 11:43:31 2015 +++ /sys/src/cmd/unix/u9fs/u9fs.c Wed Mar 4 11:55:26 2015 @@ -167,8 +167,18 @@ /*BKS*/ 1, 1, 1, 1, 1, 1, 1, 1, /*DLE*/ 1, 1, 1, 1, 1, 1, 1, 1, /*CAN*/ 1, 1, 1, 1, 1, 1, 1, 1, - ['/'] 1, - [0x7f] 1, + /*' '*/ 0, 0, 0, 0, 0, 0, 0, 0, + /*'('*/ 0, 0, 0, 0, 0, 0, 0, 1, /*'/'*/ + /*'0'*/ 0, 0, 0, 0, 0, 0, 0, 0, + /*'8'*/ 0, 0, 0, 0, 0, 0, 0, 0, + /*'@'*/ 0, 0, 0, 0, 0, 0, 0, 0, + /*'H'*/ 0, 0, 0, 0, 0, 0, 0, 0, + /*'P'*/ 0, 0, 0, 0, 0, 0, 0, 0, + /*'X'*/ 0, 0, 0, 0, 0, 0, 0, 0, + /*'`'*/ 0, 0, 0, 0, 0, 0, 0, 0, + /*'h'*/ 0, 0, 0, 0, 0, 0, 0, 0, + /*'p'*/ 0, 0, 0, 0, 0, 0, 0, 0, + /*'x'*/ 0, 0, 0, 0, 0, 0, 0, 1, /*DEL*/ }; void @@ -1735,6 +1745,7 @@ if(dup2(fd, 2) < 0) sysfatal("cannot dup fd onto stderr"); + close(fd); fprint(2, "u9fs\nkill %d\n", (int)getpid()); fmtinstall('F', fcallconv);