aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/os/io.c
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/os/io.c')
-rw-r--r--xorg-server/os/io.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/xorg-server/os/io.c b/xorg-server/os/io.c
index edcaa654c..bf7fe0401 100644
--- a/xorg-server/os/io.c
+++ b/xorg-server/os/io.c
@@ -698,15 +698,17 @@ SetCriticalOutputPending(void)
int
WriteToClient (ClientPtr who, int count, const void *__buf)
{
- OsCommPtr oc = (OsCommPtr)who->osPrivate;
- ConnectionOutputPtr oco = oc->output;
+ OsCommPtr oc;
+ ConnectionOutputPtr oco;
int padBytes;
const char *buf = __buf;
#ifdef DEBUG_COMMUNICATION
Bool multicount = FALSE;
#endif
- if (!count)
+ if (!count || !who || who == serverClient || who->clientGone)
return(0);
+ oc = who->osPrivate;
+ oco = oc->output;
#ifdef DEBUG_COMMUNICATION
{
char info[128];