PR# 13839 Missing critical section in `exget' in except.c
Problem Report Summary
			
									Submitter:	prestoat2000 
								
								
									Category:	Runtime 
								
								
									Priority:	Medium 
								
							
									Date:	2008/01/02 
								
								
									Class:	Bug 
								
								
									Severity: Serious 
								
							
									Number:	13839 
								
								
									Release:	6.2.71689 
								
								
								
									
										Confidential: No 
									
								
							
									Status: Open 
								
								
									Responsible: ted_eiffel 
								
							
									Environment: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.8.1.9) Gecko/20071111 Firefox/2.0.0.9
Solaris 10 on x86 
								
							
									Synopsis: Missing critical section in `exget' in except.c 
								
							Description
										Based on code inspection only, it looks like there is a missing critical section in `exget' in except.c. The routine in garcol.c from which this routine appears to be copied and adapted is `epush' and it does block signals if (stk->st_end == top). Another solution would be to guarantee that all callers of `exget' already have signals blocked, which is not currently the case: `exfail' calls `make_exception' which calls `build_trace' which calls `exget' (all without signals blocked, as far as I can tell).
To Reproduce
										Problem Report Interactions