From 4d4107b38547c7f9f135cc22d3a29fcbad4a8c34 Mon Sep 17 00:00:00 2001 From: Alex Musolino Date: Tue, 19 Nov 2019 12:38:13 +1030 Subject: 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. --- sys/src/cmd/rio/xfid.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/src/cmd/rio/xfid.c b/sys/src/cmd/rio/xfid.c index 3985bea00..b8e4be84a 100644 --- a/sys/src/cmd/rio/xfid.c +++ b/sys/src/cmd/rio/xfid.c @@ -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; -- cgit v1.2.3