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:
yar...@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);