summaryrefslogtreecommitdiff
path: root/sys/src/cmd/rio/xfid.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2016-04-04 06:47:26 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2016-04-04 06:47:26 +0200
commita74542613df2305bd2fde7485e55fce4fafee0e6 (patch)
tree8084cb56935f226e017b68d1602ce04c55e68ca7 /sys/src/cmd/rio/xfid.c
parent84e16f5b5c91048bfc3898654d99fb2bcfa9dfa2 (diff)
rio: /dev/kbd cleanup
- use free running unsigned indeces for window kbdq - emalloc() vs malloc() in xfid
Diffstat (limited to 'sys/src/cmd/rio/xfid.c')
-rw-r--r--sys/src/cmd/rio/xfid.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/src/cmd/rio/xfid.c b/sys/src/cmd/rio/xfid.c
index 879dc01d5..d41ec61e2 100644
--- a/sys/src/cmd/rio/xfid.c
+++ b/sys/src/cmd/rio/xfid.c
@@ -630,7 +630,7 @@ xfidread(Xfid *x)
case Qwctl:
if(cnt < 4*12){
filsysrespond(x->fs, x, &fc, Etooshort);
- break;
+ return;
}
alts[Adata].c = w->wctlread;
goto Consmesg;
@@ -665,13 +665,13 @@ xfidread(Xfid *x)
}
c1 = crm.c1;
c2 = crm.c2;
- t = malloc(cnt+UTFmax+1); /* room to unpack partial rune plus */
+ t = emalloc(cnt+UTFmax+1); /* room to unpack partial rune plus */
pair.s = t;
pair.ns = cnt;
send(c1, &pair);
recv(c2, &pair);
fc.data = pair.s;
- fc.count = pair.ns;
+ fc.count = min(cnt, pair.ns);
filsysrespond(x->fs, x, &fc, nil);
free(t);
break;