* menu.c (grow_menu_items): Check for int overflow.
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 12 May 2011 06:48:32 +0000 (23:48 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 12 May 2011 06:48:32 +0000 (23:48 -0700)
src/ChangeLog
src/menu.c

index 10b3ef2..913dcc0 100644 (file)
@@ -1,5 +1,7 @@
 2011-05-12  Paul Eggert  <eggert@cs.ucla.edu>
 
+       * menu.c (grow_menu_items): Check for int overflow.
+
        * xmenu.c (set_frame_menubar): Don't mishandle vectors with no nils.
 
 2011-05-11  Paul Eggert  <eggert@cs.ucla.edu>
index 7a3edcb..7051003 100644 (file)
@@ -176,6 +176,8 @@ save_menu_items (void)
 static void
 grow_menu_items (void)
 {
+  if ((INT_MAX - MENU_ITEMS_PANE_LENGTH) / 2 < menu_items_allocated)
+    memory_full ();
   menu_items_allocated *= 2;
   menu_items = larger_vector (menu_items, menu_items_allocated, Qnil);
 }