]> git.proxmox.com Git - mirror_corosync.git/commitdiff
Fix incorrect assertion with frame sizes of 9000.
authorSteven Dake <sdake@redhat.com>
Fri, 28 Aug 2009 01:19:30 +0000 (01:19 +0000)
committerSteven Dake <sdake@redhat.com>
Fri, 28 Aug 2009 01:19:30 +0000 (01:19 +0000)
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2395 fd59a12c-fef9-0310-b244-a6a79926bd2f

exec/totemsrp.c
include/corosync/totem/totem.h

index 60190ce6520cc594c920627c025460afb1f70397..a7c1eac2f613807b2fa1a26693170e11d44b47a9 100644 (file)
@@ -200,16 +200,6 @@ struct mcast {
 } __attribute__((packed));
 
 
-/*
- * MTU - multicast message header - IP header - UDP header
- *
- * On lossy switches, making use of the DF UDP flag can lead to loss of
- * forward progress.  So the packets must be fragmented by a higher layer
- *
- * This layer can only handle packets of MTU size.
- */
-#define FRAGMENT_SIZE (FRAME_SIZE_MAX - sizeof (struct mcast) - 20 - 8)
-
 struct rtr_item  {
        struct memb_ring_id ring_id;
        unsigned int seq;
@@ -1992,7 +1982,7 @@ static void memb_state_recovery_enter (
                messages_originated++;
                memset (&message_item, 0, sizeof (struct message_item));
        // TODO  LEAK
-               message_item.mcast = malloc (10000);
+               message_item.mcast = malloc (FRAME_SIZE_MAX);
                assert (message_item.mcast);
                message_item.mcast->header.type = MESSAGE_TYPE_MCAST;
                srp_addr_copy (&message_item.mcast->system_from, &instance->my_id);
@@ -2066,7 +2056,7 @@ int totemsrp_mcast (
        /*
         * Allocate pending item
         */
-       message_item.mcast = malloc (10000);
+       message_item.mcast = malloc (FRAME_SIZE_MAX);
        if (message_item.mcast == 0) {
                goto error_mcast;
        }
@@ -3669,7 +3659,7 @@ static int message_handler_mcast (
                sort_queue = &instance->regular_sort_queue;
        }
 
-       assert (msg_len < FRAME_SIZE_MAX);
+       assert (msg_len <= FRAME_SIZE_MAX);
 
 #ifdef TEST_DROP_MCAST_PERCENTAGE
        if (random()%100 < TEST_DROP_MCAST_PERCENTAGE) {
@@ -3733,7 +3723,7 @@ static int message_handler_mcast (
         * Add mcast message to rtr queue if not already in rtr queue
         * otherwise free io vectors
         */
-       if (msg_len > 0 && msg_len < FRAME_SIZE_MAX &&
+       if (msg_len > 0 && msg_len <= FRAME_SIZE_MAX &&
                sq_in_range (sort_queue, mcast_header.seq) &&
                sq_item_inuse (sort_queue, mcast_header.seq) == 0) {
 
index 6c113d175e3660b1cdc88a4acabbb44e6eac0ccf..51c0a2c214b7de7b5d836df1a0559c3d4d5d699f 100644 (file)
@@ -45,7 +45,7 @@
 #endif /* MESSAGE_QUEUE_MAX */
 
 #define PROCESSOR_COUNT_MAX    384
-#define FRAME_SIZE_MAX         9000
+#define FRAME_SIZE_MAX         10000
 #define TRANSMITS_ALLOWED      16
 #define SEND_THREADS_MAX       16
 #define INTERFACE_MAX          2