Prevent printing in non-existing Chat dialog (XB)
authorH.G.Muller <hgm@hgm-xboard.(none)>
Mon, 3 Aug 2015 19:59:43 +0000 (21:59 +0200)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Mon, 3 Aug 2015 19:59:43 +0000 (21:59 +0200)
The Xaw build of XBoard crashed in -ics -zp mode when the opponent was
kibitzing. According to a stack trace OutputChatMessage() tried to change
the color of a non-existent button. Although it was not clear how printing
there could be attempted if no chats were defined, the routine now is made
a no-op when the Chat dialog does not exist, by an immediate return.

dialogs.c

index cb9b298..a5e42c5 100644 (file)
--- a/dialogs.c
+++ b/dialogs.c
@@ -1946,6 +1946,7 @@ OutputChatMessage (int partner, char *mess)
     char *p = texts[partner];
     int len = strlen(mess) + 1;
 
+    if(!DialogExists(ChatDlg)) return;
     if(p) len += strlen(p);
     texts[partner] = (char*) malloc(len);
     snprintf(texts[partner], len, "%s%s", p ? p : "", mess);