tdevdraw/OSX: correct access to reply buffer (fixes rpc tag crash) - plan9port - [fork] Plan 9 from user space (HTM) git clone git://src.adamsgaard.dk/plan9port (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit 607880ce788bbfb8585271af117a52e9359324dd (DIR) parent 6c99870701d4a71d429a26f357859416c875b2fb (HTM) Author: Russ Cox <rsc@swtch.com> Date: Wed, 8 Oct 2008 14:59:32 -0700 devdraw/OSX: correct access to reply buffer (fixes rpc tag crash) Diffstat: M src/cmd/devdraw/osx-srv.c | 4 ++++ 1 file changed, 4 insertions(+), 0 deletions(-) --- (DIR) diff --git a/src/cmd/devdraw/osx-srv.c b/src/cmd/devdraw/osx-srv.c t@@ -289,6 +289,7 @@ runmsg(Wsysmsg *m) /* * Reply to m. */ +QLock replylock; void replymsg(Wsysmsg *m) { t@@ -303,6 +304,8 @@ replymsg(Wsysmsg *m) if(trace) fprint(2, "-> %W\n", m); /* copy to output buffer */ n = sizeW2M(m); + + qlock(&replylock); if(n > nmbuf){ free(mbuf); mbuf = malloc(n); t@@ -313,6 +316,7 @@ replymsg(Wsysmsg *m) convW2M(m, mbuf, n); if(write(4, mbuf, n) != n) sysfatal("write: %r"); + qunlock(&replylock); } /*