commit: r443 - trunk/daemon
[email protected] Fri, 06 Jan 2012 20:13:14 -0500
| Newsgroups | gmane.network.spread.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: jonathan Date: 2012-01-06 20:13:14 -0500 (Fri, 06 Jan 2012) New Revision: 443 Modified: trunk/daemon/Changelog trunk/daemon/message.c Log: Add sanity check to geneate clean fatal error if a message larger then scatter is generated. This should never happen unless there is a bug since the library won't let such a message be sent Modified: trunk/daemon/Changelog =================================================================== --- trunk/daemon/Changelog 2012-01-07 01:10:41 UTC (rev 442) +++ trunk/daemon/Changelog 2012-01-07 01:13:14 UTC (rev 443) @@ -1,3 +1,10 @@ +Fri Jan 6 20:12:34 2012 Jonathan Stanton <[email protected]> + + * message.c (Message_Buffer_to_Message_Fragments): Add sanity check + that will log error and shut down if a message larger then a scatter + is generated. Should be impossible because client library should + prevent such a message. + Fri Jan 6 19:58:12 2012 Jonathan Stanton <[email protected]> * protocol.c (Handle_hurry): Fix token hurry bug where one daemon Modified: trunk/daemon/message.c =================================================================== --- trunk/daemon/message.c 2012-01-07 01:10:41 UTC (rev 442) +++ trunk/daemon/message.c 2012-01-07 01:13:14 UTC (rev 443) @@ -326,6 +326,12 @@ scat = Message_get_data_scatter(msg); head_size = Message_get_data_header_size(); scat->num_elements = (num_bytes + head_size -1)/sizeof( packet_body ) + 1; + + if (scat->num_elements > MAX_SCATTER_ELEMENTS) { + /* Message is too large */ + Alarmp(SPLOG_FATAL, PROTOCOL, "Message_Buffer_to_Message_Fragments: Number of scatter elements required for message (%d) is larger then the compiled in MAX_SCATTER_ELEMENTS (%d)\n", scat->num_elements, MAX_SCATTER_ELEMENTS); + return; + } copied_bytes = 0; for( i=0; i < scat->num_elements ; i++ ) {