ref: 4d4107b38547c7f9f135cc22d3a29fcbad4a8c34
parent: f32148b290be11d46d3c1e419285f46c7fbb308b
author: Alex Musolino <[email protected]>
date: Tue Nov 19 07:38:13 EST 2019
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.
--- a/sys/src/cmd/rio/xfid.c
+++ b/sys/src/cmd/rio/xfid.c
@@ -670,9 +670,9 @@
}
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;