added null ptr check
[mesa.git] / src / glut / glx / glut_menu.c
index 94ac5167b6da8636b48edb0c3fc12dec7928aa5e..4c4a5ae7503e4f8ea6ed82e17cd1c76a5a0a6f8a 100644 (file)
@@ -831,7 +831,7 @@ installMenuCallbacks(void)
   __glutGetMenuItem = getMenuItem;
 }
 
-int APIENTRY 
+int GLUTAPIENTRY 
 glutCreateMenu(GLUTselectCB selectFunc)
 {
   XSetWindowAttributes wa;
@@ -890,7 +890,7 @@ glutCreateMenu(GLUTselectCB selectFunc)
 }
 
 /* CENTRY */
-int APIENTRY 
+int GLUTAPIENTRY 
 glutGetMenu(void)
 {
   if (__glutCurrentMenu) {
@@ -900,7 +900,7 @@ glutGetMenu(void)
   }
 }
 
-void APIENTRY 
+void GLUTAPIENTRY 
 glutSetMenu(int menuid)
 {
   GLUTmenu *menu;
@@ -940,7 +940,7 @@ __glutSetMenuItem(GLUTmenuItem * item, const char *label,
 }
 
 /* CENTRY */
-void APIENTRY 
+void GLUTAPIENTRY 
 glutAddMenuEntry(const char *label, int value)
 {
   XSetWindowAttributes wa;
@@ -968,7 +968,7 @@ glutAddMenuEntry(const char *label, int value)
   __glutCurrentMenu->list = entry;
 }
 
-void APIENTRY 
+void GLUTAPIENTRY 
 glutAddSubMenu(const char *label, int menu)
 {
   XSetWindowAttributes wa;
@@ -997,9 +997,13 @@ glutAddSubMenu(const char *label, int menu)
   __glutCurrentMenu->list = submenu;
 }
 
-void APIENTRY 
+void GLUTAPIENTRY 
 glutAttachMenu(int button)
 {
+  /* if button >= GLUT_MAX_MENUS, we'll go out of array bounds below */
+  if (button >= GLUT_MAX_MENUS) {
+    return;
+  }
   if (__glutMappedMenu) {
     __glutMenuModificationError();
   }