diff options
author | Murali Ganapathy <murali@integral.(none)> | 2008-06-22 23:04:11 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2008-06-23 23:16:32 -0700 |
commit | 0090618c178c8e57983fc347ef940e63738586d7 (patch) | |
tree | 6d7a6cc78d2aaa1324241d4b33d111552cb767b8 | |
parent | 7edf0a4cc227fc7c7cbe36a95bc2e4cd83414380 (diff) | |
download | syslinux-0090618c178c8e57983fc347ef940e63738586d7.tar.gz |
complex menu: Fixed bug in menu.c so complex.c32 works again.
Avoid crashing in the presence of unnamed submenus.
-rw-r--r-- | menu/libmenu/menu.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/menu/libmenu/menu.c b/menu/libmenu/menu.c index 841e59ca..56a7426c 100644 --- a/menu/libmenu/menu.c +++ b/menu/libmenu/menu.c @@ -695,10 +695,11 @@ void fix_submenus() for (j=0; j < m->numitems; j++) { mi = m->items[j]; - // if submenu with non-trivial data string - // again using hack that itemdata is a union data type - if ( mi->data && ((mi->action == OPT_SUBMENU) || (mi->action == OPT_RADIOMENU)) ) + // if item is a submenu and has non-empty non-trivial data string + if (mi->data && strlen(mi->data) > 0 && + ((mi->action == OPT_SUBMENU) || (mi->action == OPT_RADIOMENU)) ) { mi->itemdata.submenunum = find_menu_num (mi->data); + } } } } |