flock: Fix hang in object collision case
* flock.cc (lockf_t::create_lock_obj): Correctly recreate lock object attributes anew in each loop. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
		
							parent
							
								
									e6459123e4
								
							
						
					
					
						commit
						914620a7e6
					
				|  | @ -1,3 +1,8 @@ | |||
| 2015-11-12  Corinna Vinschen  <corinna@vinschen.de> | ||||
| 
 | ||||
| 	* flock.cc (lockf_t::create_lock_obj): Correctly recreate lock object | ||||
| 	attributes anew in each loop. | ||||
| 
 | ||||
| 2015-11-12  Corinna Vinschen  <corinna@vinschen.de> | ||||
| 
 | ||||
| 	* init.cc (munge_threadfunc): Don't call NtQueryInformationThread with | ||||
|  |  | |||
|  | @ -766,12 +766,12 @@ lockf_t::create_lock_obj () | |||
| { | ||||
|   lockfattr_t attr; | ||||
|   NTSTATUS status; | ||||
|   PSECURITY_DESCRIPTOR sd_buf = alloca (SD_MIN_SIZE); | ||||
|   POBJECT_ATTRIBUTES lock_obj_attr; | ||||
| 
 | ||||
|   lock_obj_attr = create_lock_obj_attr (&attr, OBJ_INHERIT, | ||||
| 					alloca (SD_MIN_SIZE)); | ||||
|   do | ||||
|     { | ||||
|       lock_obj_attr = create_lock_obj_attr (&attr, OBJ_INHERIT, sd_buf); | ||||
|       status = NtCreateEvent (&lf_obj, CYG_EVENT_ACCESS, lock_obj_attr, | ||||
| 			      NotificationEvent, FALSE); | ||||
|       if (!NT_SUCCESS (status)) | ||||
|  |  | |||
|  | @ -12,3 +12,8 @@ Bug Fixes | |||
| - The fix for wine introduced in 2.3.0 crashes in 32 bit Cygwin on 64 bit XP | ||||
|   and 64 bit Server 2003 only.   This should work now. | ||||
|   Addresses: https://cygwin.com/ml/cygwin/2015-11/msg00187.html | ||||
| 
 | ||||
| - The fix to avoid a potential crash in advisory file locking introduced in | ||||
|   2.3.0 waas not entirely correct and failed to work in certain border cases. | ||||
|   This should work now. | ||||
|   Addresses: https://cygwin.com/ml/cygwin/2015-11/msg00189.html | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue