luci-lib-ip: multiple fixes
* 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>
This commit is contained in:
parent
44a62295f9
commit
65f0135491
1 changed files with 6 additions and 6 deletions
|
@ -299,10 +299,10 @@ static int _cidr_new(lua_State *L, int index, int family, bool mask)
|
||||||
cidr.family = AF_INET6;
|
cidr.family = AF_INET6;
|
||||||
cidr.bits = 128;
|
cidr.bits = 128;
|
||||||
cidr.len = sizeof(cidr.addr.v6);
|
cidr.len = sizeof(cidr.addr.v6);
|
||||||
cidr.addr.v6.s6_addr[15] = n;
|
cidr.addr.v6.s6_addr[12] = n;
|
||||||
cidr.addr.v6.s6_addr[14] = (n >> 8);
|
cidr.addr.v6.s6_addr[13] = (n >> 8);
|
||||||
cidr.addr.v6.s6_addr[13] = (n >> 16);
|
cidr.addr.v6.s6_addr[14] = (n >> 16);
|
||||||
cidr.addr.v6.s6_addr[12] = (n >> 24);
|
cidr.addr.v6.s6_addr[15] = (n >> 24);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -586,7 +586,7 @@ static int _cidr_add_sub(lua_State *L, bool add)
|
||||||
{
|
{
|
||||||
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++)
|
||||||
{
|
{
|
||||||
if (add)
|
if (add)
|
||||||
{
|
{
|
||||||
|
@ -1123,7 +1123,7 @@ out:
|
||||||
|
|
||||||
static int neighbor_dump(lua_State *L)
|
static int neighbor_dump(lua_State *L)
|
||||||
{
|
{
|
||||||
cidr_t p;
|
cidr_t p = { };
|
||||||
const char *s;
|
const char *s;
|
||||||
struct ether_addr *mac;
|
struct ether_addr *mac;
|
||||||
struct dump_filter filter = { .type = 0xFF & ~NUD_NOARP };
|
struct dump_filter filter = { .type = 0xFF & ~NUD_NOARP };
|
||||||
|
|
Loading…
Reference in a new issue