* Fix broken neighbor filtering by address range due to uninitialized memory
* Fix wrong sizeof in _cidr_add_sub when adding/substracing IPv6 addresses
* Properly convert numeric values to IPv6 addresses
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
cidr.family = AF_INET6;
cidr.bits = 128;
cidr.len = sizeof(cidr.addr.v6);
cidr.family = AF_INET6;
cidr.bits = 128;
cidr.len = sizeof(cidr.addr.v6);
- cidr.addr.v6.s6_addr[15] = n;
- cidr.addr.v6.s6_addr[14] = (n >> 8);
- cidr.addr.v6.s6_addr[13] = (n >> 16);
- cidr.addr.v6.s6_addr[12] = (n >> 24);
+ cidr.addr.v6.s6_addr[12] = n;
+ cidr.addr.v6.s6_addr[13] = (n >> 8);
+ cidr.addr.v6.s6_addr[14] = (n >> 16);
+ cidr.addr.v6.s6_addr[15] = (n >> 24);
{
if (p1->family == AF_INET6)
{
{
if (p1->family == AF_INET6)
{
- for (i = 0, carry = 0; i < sizeof(r); i++)
+ for (i = 0, carry = 0; i < sizeof(r.addr.v6.s6_addr); i++)
static int neighbor_dump(lua_State *L)
{
static int neighbor_dump(lua_State *L)
{
const char *s;
struct ether_addr *mac;
struct dump_filter filter = { .type = 0xFF & ~NUD_NOARP };
const char *s;
struct ether_addr *mac;
struct dump_filter filter = { .type = 0xFF & ~NUD_NOARP };