Fix crash on empty combobox menu XB
authorH.G. Muller <h.g.muller@hccnet.nl>
Fri, 10 Feb 2012 16:35:22 +0000 (17:35 +0100)
committerH.G. Muller <h.g.muller@hccnet.nl>
Fri, 10 Feb 2012 16:35:22 +0000 (17:35 +0100)
XBoard crashed when a combobox without items was opened, as could easily
happen in the Load Engine dialogs when -firstChessProgramNames contained
no items, as it would without configuring. Now the creation of the popup
menu is suppressed in that case.

xoptions.c

index 446cf15..22aac1e 100644 (file)
@@ -220,13 +220,13 @@ CreateComboPopup (Widget parent, Option *option, int n)
     int i=0, j;
     Widget menu, entry;
     Arg args[16];
+    char **mb = (char **) option->textValue;
 
+    if(mb[0] == NULL) return; // avoid empty menus, as they cause crash
     menu = XtCreatePopupShell(option->name, simpleMenuWidgetClass,
                              parent, NULL, 0);
     j = 0;
     XtSetArg(args[j], XtNwidth, 100);  j++;
-//    XtSetArg(args[j], XtNright, XtChainRight);  j++;
-    char **mb = (char **) option->textValue;
     while (mb[i] != NULL) 
       {
        if (option->min & NO_GETTEXT)