|
From: | Baudouin, Charles |
Subject: | [Savannah-users] Bug in IGMP |
Date: | Mon, 18 Feb 2013 14:33:09 +0000 |
IGMP crashes with division by zero: /** * Start a timer for an igmp group * * @param group the igmp_group for which to start a timer * @param max_time the time in multiples of IGMP_TMR_INTERVAL (decrease with * every call to igmp_tmr()) */ static void igmp_start_timer(struct igmp_group *group, u8_t max_time) { /* ensure the input value is > 0 */ if (max_time == 0) { max_time = 1; } /* ensure the random value is > 0 */ group->timer = (LWIP_RAND() % (max_time - 1)) + 1; } If called with max_time = 1. Should read: static void igmp_start_timer(struct igmp_group *group, u8_t max_time) { /* ensure the input value is > 0 */ if (max_time < 2) { max_time = 2; } /* ensure the random value is > 0 */ group->timer = (LWIP_RAND() % (max_time - 1)) + 1; } This E-mail and any files transmitted with it ("E-mail") is intended solely for the addressee(s) and may contain confidential and/or legally privileged information. If you are not the addressee(s), any disclosure, reproduction, copying, distribution or other use of the E-mail is prohibited. If you have received this E-mail in error, please delete it and notify the sender immediately via our switchboard or return e-mail. Neither the company nor any subsidiary or affiliate or associated company nor any individual sending this E-mail accepts any liability in respect of the content (including errors and omissions) nor shall this e-mail be deemed to enter the company or any subsidiary or affiliate or associated company into a contract or to create any legally binding obligations unless expressly agreed to in writing under separate cover and timeliness of the E-mail which arise as a result of transmission. If verification is required, please request a hard copy version from the sender. |
[Prev in Thread] | Current Thread | [Next in Thread] |