fix #1017551: don't crash on manipulating active menus

This commit is contained in:
Tomas Smetana 2014-01-23 14:51:48 +01:00
parent b05718542c
commit acaa392c7a
2 changed files with 92 additions and 1 deletions

View File

@ -0,0 +1,85 @@
diff -up freeglut-2.8.1/src/freeglut_menu.c.nocheck freeglut-2.8.1/src/freeglut_menu.c
--- freeglut-2.8.1/src/freeglut_menu.c.nocheck 2014-01-23 14:43:19.386742857 +0100
+++ freeglut-2.8.1/src/freeglut_menu.c 2014-01-23 14:44:26.322770844 +0100
@@ -866,8 +866,6 @@ int FGAPIENTRY glutCreateMenu( void(* ca
{
/* The menu object creation code resides in freeglut_structure.c */
FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutCreateMenu" );
- if (fgGetActiveMenu())
- fgError("Menu manipulation not allowed while menus in use.");
return fgCreateMenu( callback )->ID;
}
@@ -891,9 +889,6 @@ void FGAPIENTRY glutDestroyMenu( int men
freeglut_return_if_fail( menu );
- if (fgGetActiveMenu())
- fgError("Menu manipulation not allowed while menus in use.");
-
/* The menu object destruction code resides in freeglut_structure.c */
fgDestroyMenu( menu );
}
@@ -936,8 +931,6 @@ void FGAPIENTRY glutAddMenuEntry( const
menuEntry = (SFG_MenuEntry *)calloc( sizeof(SFG_MenuEntry), 1 );
freeglut_return_if_fail( fgStructure.CurrentMenu );
- if (fgGetActiveMenu())
- fgError("Menu manipulation not allowed while menus in use.");
menuEntry->Text = strdup( label );
menuEntry->ID = value;
@@ -961,8 +954,6 @@ void FGAPIENTRY glutAddSubMenu( const ch
subMenu = fgMenuByID( subMenuID );
freeglut_return_if_fail( fgStructure.CurrentMenu );
- if (fgGetActiveMenu())
- fgError("Menu manipulation not allowed while menus in use.");
freeglut_return_if_fail( subMenu );
@@ -984,8 +975,6 @@ void FGAPIENTRY glutChangeToMenuEntry( i
FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutChangeToMenuEntry" );
freeglut_return_if_fail( fgStructure.CurrentMenu );
- if (fgGetActiveMenu())
- fgError("Menu manipulation not allowed while menus in use.");
/* Get n-th menu entry in the current menu, starting from one: */
menuEntry = fghFindMenuEntry( fgStructure.CurrentMenu, item );
@@ -1014,8 +1003,6 @@ void FGAPIENTRY glutChangeToSubMenu( int
FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutChangeToSubMenu" );
freeglut_return_if_fail( fgStructure.CurrentMenu );
- if (fgGetActiveMenu())
- fgError("Menu manipulation not allowed while menus in use.");
/* Get handle to sub menu */
subMenu = fgMenuByID( subMenuID );
@@ -1048,8 +1035,6 @@ void FGAPIENTRY glutRemoveMenuItem( int
FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutRemoveMenuItem" );
freeglut_return_if_fail( fgStructure.CurrentMenu );
- if (fgGetActiveMenu())
- fgError("Menu manipulation not allowed while menus in use.");
/* Get n-th menu entry in the current menu, starting from one: */
menuEntry = fghFindMenuEntry( fgStructure.CurrentMenu, item );
@@ -1074,8 +1059,6 @@ void FGAPIENTRY glutAttachMenu( int butt
freeglut_return_if_fail( fgStructure.CurrentWindow );
freeglut_return_if_fail( fgStructure.CurrentMenu );
- if (fgGetActiveMenu())
- fgError("Menu manipulation not allowed while menus in use.");
freeglut_return_if_fail( button >= 0 );
freeglut_return_if_fail( button < FREEGLUT_MAX_MENUS );
@@ -1093,8 +1076,6 @@ void FGAPIENTRY glutDetachMenu( int butt
freeglut_return_if_fail( fgStructure.CurrentWindow );
freeglut_return_if_fail( fgStructure.CurrentMenu );
- if (fgGetActiveMenu())
- fgError("Menu manipulation not allowed while menus in use.");
freeglut_return_if_fail( button >= 0 );
freeglut_return_if_fail( button < FREEGLUT_MAX_MENUS );

View File

@ -1,7 +1,7 @@
Summary: A freely licensed alternative to the GLUT library
Name: freeglut
Version: 2.8.1
Release: 2%{?dist}
Release: 3%{?dist}
URL: http://freeglut.sourceforge.net
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
# For the manpages
@ -18,6 +18,8 @@ BuildRequires: libXi-devel libICE-devel
# freeglut. Note: This package will NOT co-exist with the glut package.
Provides: glut = 3.7
Obsoletes: glut < 3.7
# #1017551: Don't check whether a menu is active while manipulating it
Patch0: freeglut-2.8.1-nocheck.patch
%description
freeglut is a completely open source alternative to the OpenGL Utility Toolkit
@ -48,6 +50,7 @@ license.
%prep
%setup -q -a 1
%patch0 -p1 -b .nocheck
%build
# --disable-warnings -> don't add -Werror to CFLAGS
@ -81,6 +84,9 @@ install -p -m 644 doc/man/*.3 $RPM_BUILD_ROOT/%{_mandir}/man3
%changelog
* Thu Jan 23 2014 Tomas Smetana <tsmetana@redhat.com> - 2.8.1-3
- fix #1017551: don't crash on manipulating active menus
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.8.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild