commit: r376 - in trunk: daemon libspread
[email protected] Sun, 19 Nov 2006 17:05:32 -0500
| Newsgroups | gmane.network.spread.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: jonathan Date: 2006-11-19 17:05:32 -0500 (Sun, 19 Nov 2006) New Revision: 376 Modified: trunk/daemon/Changelog trunk/libspread/sp.c Log: In sp.c, add missing Mutex_unlock() calls before return(ILLEGAL_MESSAGE) calls in SP_recv. Fix deadlock reported by Massimo Feola for 3.17.3. Also present in 4. Modified: trunk/daemon/Changelog =================================================================== --- trunk/daemon/Changelog 2006-11-19 21:06:01 UTC (rev 375) +++ trunk/daemon/Changelog 2006-11-19 22:05:32 UTC (rev 376) @@ -1,3 +1,9 @@ +Sun Nov 19 16:58:13 2006 Jonathan Stanton <[email protected]> + + * sp.c (SP_scat_receive): Add missing Mutex_unlock() calls + before return(ILLEGAL_MESSAGE) calls. Fix deadlock reported + by Massimo Feola for 3.17.3. Also present in 4. + Sun Nov 19 13:10:00 2006 Jonathan Stanton <[email protected]> * libspread/fl.c, stdutil/* (many): Update to stdutil version 1.0.0beta6. Modified: trunk/libspread/sp.c =================================================================== --- trunk/libspread/sp.c 2006-11-19 21:06:01 UTC (rev 375) +++ trunk/libspread/sp.c 2006-11-19 22:05:32 UTC (rev 376) @@ -1311,6 +1311,7 @@ Sessions[ses].recv_message_saved = 1; Mutex_unlock( &Struct_mutex ); } + Mutex_unlock( &Mbox_mutex[mbox & MAX_MUTEX_MASK][1] ); return( ILLEGAL_MESSAGE ); } max_mess_len += scat_mess->elements[i].len; @@ -1320,12 +1321,14 @@ /* reject this message since it has an impossible (negative) num_groups * This is likely to be caused by a malicious attack or memory corruption */ + Mutex_unlock( &Mbox_mutex[mbox & MAX_MUTEX_MASK][1] ); return( ILLEGAL_MESSAGE ); } if (head_ptr->data_len < 0) { /* reject this message since it has an impossible (negative) data_len * This is likely to be caused by a malicious attack or memory corruption */ + Mutex_unlock( &Mbox_mutex[mbox & MAX_MUTEX_MASK][1] ); return( ILLEGAL_MESSAGE ); }