]> err.no Git - linux-2.6/commit
[UDP]: Fix reversed logic in udp_get_port().
authorDavid S. Miller <davem@sunset.davemloft.net>
Fri, 22 Dec 2006 19:42:26 +0000 (11:42 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Fri, 22 Dec 2006 19:42:26 +0000 (11:42 -0800)
commit5c668704b7fa5a4ebf21a490ddfbd6dc2e01fc97
treea5b4ee5df56025c077646a2b8cbdf5a23c2a1b89
parentb23e3536667373e44f52a907f63cb55f75969490
[UDP]: Fix reversed logic in udp_get_port().

When this code was converted to use sk_for_each() the
logic for the "best hash chain length" code was reversed,
breaking everything.

The original code was of the form:

size = 0;
do {
if (++size >= best_size_so_far)
goto next;
} while ((sk = sk->next) != NULL);
best_size_so_far = size;
best = result;
next:;

and this got converted into:

sk_for_each(sk2, node, head)
if (++size < best_size_so_far) {
best_size_so_far = size;
best = result;
}

Which does something very very different from the original.

Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/udp.c