aboutsummaryrefslogtreecommitdiff
path: root/src/lib9
diff options
context:
space:
mode:
authorTim Newsham <tim.newsham@gmail.com>2009-08-20 11:37:24 -0400
committerTim Newsham <tim.newsham@gmail.com>2009-08-20 11:37:24 -0400
commit8ff457f56db9f94f4baf68f53d87e791584d1dfe (patch)
tree4b3b025452291e4f258e06281a52479f0a3fac7b /src/lib9
parente7c5e5ed94e02e969d45d8ab74876cac53694195 (diff)
downloadplan9port-8ff457f56db9f94f4baf68f53d87e791584d1dfe.tar.gz
plan9port-8ff457f56db9f94f4baf68f53d87e791584d1dfe.tar.bz2
plan9port-8ff457f56db9f94f4baf68f53d87e791584d1dfe.zip
lib9: dotu fixes in convS2M, convM2S
http://codereview.appspot.com/109049
Diffstat (limited to 'src/lib9')
-rw-r--r--src/lib9/convM2S.c20
-rw-r--r--src/lib9/convS2M.c20
2 files changed, 34 insertions, 6 deletions
diff --git a/src/lib9/convM2S.c b/src/lib9/convM2S.c
index 3df83da2..6a8805c4 100644
--- a/src/lib9/convM2S.c
+++ b/src/lib9/convM2S.c
@@ -100,6 +100,13 @@ convM2Su(uchar *ap, uint nap, Fcall *f, int dotu)
p = gstring(p, ep, &f->aname);
if(p == nil)
break;
+ f->uidnum = NOUID;
+ if(dotu){
+ if(p+BIT32SZ > ep)
+ return 0;
+ f->uidnum = GBIT32(p);
+ p += BIT32SZ;
+ }
break;
case Tattach:
@@ -117,6 +124,13 @@ convM2Su(uchar *ap, uint nap, Fcall *f, int dotu)
p = gstring(p, ep, &f->aname);
if(p == nil)
break;
+ f->uidnum = NOUID;
+ if(dotu){
+ if(p+BIT32SZ > ep)
+ return 0;
+ f->uidnum = GBIT32(p);
+ p += BIT32SZ;
+ }
break;
case Twalk:
@@ -233,10 +247,10 @@ convM2Su(uchar *ap, uint nap, Fcall *f, int dotu)
p = gstring(p, ep, &f->ename);
f->errornum = 0;
if(dotu){
- if(p+BIT16SZ > ep)
+ if(p+BIT32SZ > ep)
return 0;
- f->errornum = GBIT16(p);
- p += BIT16SZ;
+ f->errornum = GBIT32(p);
+ p += BIT32SZ;
}
break;
diff --git a/src/lib9/convS2M.c b/src/lib9/convS2M.c
index b01a0221..02923bd4 100644
--- a/src/lib9/convS2M.c
+++ b/src/lib9/convS2M.c
@@ -74,6 +74,8 @@ sizeS2Mu(Fcall *f, int dotu)
n += BIT32SZ;
n += stringsz(f->uname);
n += stringsz(f->aname);
+ if(dotu)
+ n += BIT32SZ;
break;
case Tattach:
@@ -81,6 +83,8 @@ sizeS2Mu(Fcall *f, int dotu)
n += BIT32SZ;
n += stringsz(f->uname);
n += stringsz(f->aname);
+ if(dotu)
+ n += BIT32SZ;
break;
case Twalk:
@@ -144,7 +148,7 @@ sizeS2Mu(Fcall *f, int dotu)
case Rerror:
n += stringsz(f->ename);
if(dotu)
- n += BIT16SZ;
+ n += BIT32SZ;
break;
case Rflush:
@@ -249,6 +253,11 @@ convS2Mu(Fcall *f, uchar *ap, uint nap, int dotu)
p += BIT32SZ;
p = pstring(p, f->uname);
p = pstring(p, f->aname);
+ if(dotu){
+ f->uidnum = NOUID;
+ PBIT32(p, f->uidnum);
+ p += BIT32SZ;
+ }
break;
case Tattach:
@@ -258,6 +267,11 @@ convS2Mu(Fcall *f, uchar *ap, uint nap, int dotu)
p += BIT32SZ;
p = pstring(p, f->uname);
p = pstring(p, f->aname);
+ if(dotu){
+ f->uidnum = NOUID;
+ PBIT32(p, f->uidnum);
+ p += BIT32SZ;
+ }
break;
case Twalk:
@@ -344,8 +358,8 @@ convS2Mu(Fcall *f, uchar *ap, uint nap, int dotu)
case Rerror:
p = pstring(p, f->ename);
if(dotu){
- PBIT16(p, f->errornum);
- p += BIT16SZ;
+ PBIT32(p, f->errornum);
+ p += BIT32SZ;
}
break;