rio: fix bug causing short reads of wctl files

Previously, reads of wctl files would return one byte less than
requested as the returned string must be null terminated.  Now we pass
the actual size of the allocated buffer to the handler, which is large
enough to accommodate a trailing partial rune and terminating null
byte.
This commit is contained in:
Alex Musolino 2019-11-19 12:38:13 +10:30
parent f32148b290
commit 4d4107b385

View file

@ -670,9 +670,9 @@ xfidread(Xfid *x)
}
c1 = crm.c1;
c2 = crm.c2;
t = emalloc(cnt+UTFmax+1); /* room to unpack partial rune plus */
pair.ns = cnt+UTFmax+1; /* room for partial rune and null byte */
t = emalloc(pair.ns);
pair.s = t;
pair.ns = cnt;
send(c1, &pair);
recv(c2, &pair);
fc.data = pair.s;