Issue #2810 has been updated by swildner. Status changed from New to Closed
I've pushed the changes. See http://lists.dragonflybsd.org/pipermail/commits/2016-June/500528.html Thanks Sascha ---------------------------------------- Bug #2810: In kernel file src/sys/netinet6/nd6_nbr.c, two mbuf size comparisons are erroneous http://bugs.dragonflybsd.org/issues/2810#change-12908 * Author: fenyo * Status: Closed * Priority: Low * Assignee: * Category: Kernel * Target version: ---------------------------------------- In src/sys/netinet6/nd6_nbr.c, there are two times the same minor bug: At first, in this part of the file: ----------------------------- if (max_linkhdr + maxlen >= MCLBYTES) { #ifdef DIAGNOSTIC kprintf("nd6_ns_output: max_linkhdr + maxlen >= MCLBYTES " "(%d + %d > %d)\n", max_linkhdr, maxlen, MCLBYTES); #endif return; } ----------------------------- There is two times the same little mistake in this code: the two ">=" should be changed to ">" (note that it is correctly written in the last line of the kprintf: "(%d + %d > %d)\n"). This is a bug because if the packet need exactly MCLBYTES, it is possible to process it, but the code returns without having processed the packet. Anyway, it is a minor bug because this case should never happen since the Neighbor Advertisement and Neighbor Solicitation packets are always small enough to be contained in a single MBUF cluster. But the code is wrong, it would be nicer if corrected. Secondly, the same bug appears later in the same file: ----------------------------------- if (max_linkhdr + maxlen >= MCLBYTES) { #ifdef DIAGNOSTIC kprintf("nd6_na_output: max_linkhdr + maxlen >= MCLBYTES " "(%d + %d > %d)\n", max_linkhdr, maxlen, MCLBYTES); #endif return; ----------------------------------- Here again, the two "=>" should be changed to ">". -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://bugs.dragonflybsd.org/my/account
