diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2011-05-11 23:48:32 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2011-05-11 23:48:32 -0700 |
commit | 5cc152c0804748eb4c872ff34fe5414669e10745 (patch) | |
tree | e93a9ae4f8dec36799892b4acbcaf0607caf9355 | |
parent | d89eb65e6d3a46ef9d04a950ee24352c146e4ea0 (diff) | |
download | emacs-5cc152c0804748eb4c872ff34fe5414669e10745.tar.gz |
* menu.c (grow_menu_items): Check for int overflow.
-rw-r--r-- | src/ChangeLog | 2 | ||||
-rw-r--r-- | src/menu.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 10b3ef2d6f2..913dcc05a10 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -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> diff --git a/src/menu.c b/src/menu.c index 7a3edcb6f4f..705100381d5 100644 --- a/src/menu.c +++ b/src/menu.c @@ -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); } |