[Spread-cvs] commit: r376 - in trunk: daemon libspread
jonathan at spread.org
jonathan at spread.org
Sun Nov 19 17:05:32 EST 2006
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 <jonathan at cnds.jhu.edu>
+
+ * 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 <jonathan at cnds.jhu.edu>
* 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 );
}
More information about the Spread-cvs
mailing list