diff options
Diffstat (limited to 'xorg-server/os/io.c')
-rw-r--r-- | xorg-server/os/io.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/xorg-server/os/io.c b/xorg-server/os/io.c index a963d8653..82a2c5875 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];
|