Fix of NULL-pointer dereference segfault in texinfo description. The problem is due missing variable initialization in the following code snip in session.c: /* Use KEY (a digit) to select the Nth menu item in WINDOW->node. */ DECLARE_INFO_COMMAND (info_menu_digit, _("Select this menu item")) { register int i, item; [1] register REFERENCE *entry = NULL, **menu; menu = info_menu_of_node (window->node); if (!menu) { info_error ((char *) msg_no_menu_node, NULL, NULL); return; } /* We have the menu. See if there are this many items in it. */ item = key - '0'; /* Special case. Item "0" is the last item in this menu. */ [2] if (item == 0) [3] for (i = 0; menu[i + 1]; i++); else { for (i = 0; (entry = menu[i]); i++) if (i == item - 1) break; } [4] if (menu[i]) { info_select_reference (window, menu[i]); [5] if (entry->line_number > 0) ... As we can see there is a case when item==0 [2] and menu[i]!=NULL [4]. In this case segfault occurs on the NULL pointer dereference of variable 'entry' at [5], because value of the 'entry' variable still has its initial value of NULL[1]. According to texinfo when '0' key pressed(item=0) we should move to the last menu item available. So the 'entry' should be initialized in this case and it should point to the last menu item that is last menu[i] pointer before NULL. I assume following solution and some code cleanup: if (item == 0) for (i = 0; menu[i + 1]; i++); else { for (i = 0; menu[i]; i++) if (i == item - 1) break; } entry=menu[i]; if (entry) { info_select_reference (window, entry); if (entry->line_number > 0) info_next_line (window, entry->line_number - 1, key); }