From 51358f9f7262546707b1383695cd0f5e7f8b5108 Mon Sep 17 00:00:00 2001 From: Andreas Steffen Date: Wed, 8 Oct 2008 06:57:52 +0000 Subject: correct fix that replaces Changeset 4378 --- src/charon/plugins/kernel_netlink/kernel_netlink_net.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/charon/plugins/kernel_netlink/kernel_netlink_net.c') diff --git a/src/charon/plugins/kernel_netlink/kernel_netlink_net.c b/src/charon/plugins/kernel_netlink/kernel_netlink_net.c index f14776287..ea59541c7 100644 --- a/src/charon/plugins/kernel_netlink/kernel_netlink_net.c +++ b/src/charon/plugins/kernel_netlink/kernel_netlink_net.c @@ -695,17 +695,19 @@ static bool addr_in_subnet(chunk_t addr, chunk_t net, int net_len) { return FALSE; } - /* scan through all bits, beginning in the front */ + /* scan through all bits, beginning at the front */ for (byte = 0; byte < addr.len; byte++) { - for (bit = 7; bit >= 0; bit--) + for (bit = 0; bit < 8; bit++) { + u_char bitpos = 1 << (7-bit); + /* check if bits are equal (or we reached the end of the net) */ - if (bit + byte * 8 > net_len) + if (bit + byte * 8 >= net_len) { return TRUE; } - if (((1<