luci-lib-ip: explicitly clear scope when allocating new userdata
Fixes: #3609
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit c2eeb09bd9
)
This commit is contained in:
parent
1592197874
commit
8b1683524c
1 changed files with 4 additions and 0 deletions
|
@ -747,6 +747,7 @@ static int cidr_mask(lua_State *L)
|
||||||
if (!(p2 = lua_newuserdata(L, sizeof(*p2))))
|
if (!(p2 = lua_newuserdata(L, sizeof(*p2))))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
p2->scope = 0;
|
||||||
p2->bits = AF_BITS(p1->family);
|
p2->bits = AF_BITS(p1->family);
|
||||||
p2->family = p1->family;
|
p2->family = p1->family;
|
||||||
|
|
||||||
|
@ -790,6 +791,7 @@ static int cidr_mapped4(lua_State *L)
|
||||||
if (!(p2 = lua_newuserdata(L, sizeof(*p2))))
|
if (!(p2 = lua_newuserdata(L, sizeof(*p2))))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
p2->scope = 0;
|
||||||
p2->family = AF_INET;
|
p2->family = AF_INET;
|
||||||
p2->bits = (p1->bits > AF_BITS(AF_INET)) ? AF_BITS(AF_INET) : p1->bits;
|
p2->bits = (p1->bits > AF_BITS(AF_INET)) ? AF_BITS(AF_INET) : p1->bits;
|
||||||
memcpy(&p2->addr.v4, p1->addr.v6.s6_addr + 12, sizeof(p2->addr.v4));
|
memcpy(&p2->addr.v4, p1->addr.v6.s6_addr + 12, sizeof(p2->addr.v4));
|
||||||
|
@ -830,6 +832,7 @@ static int cidr_tolinklocal(lua_State *L)
|
||||||
if (!(p2 = lua_newuserdata(L, sizeof(*p2))))
|
if (!(p2 = lua_newuserdata(L, sizeof(*p2))))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
p2->scope = p1->scope;
|
||||||
p2->family = AF_INET6;
|
p2->family = AF_INET6;
|
||||||
p2->bits = AF_BITS(AF_INET6);
|
p2->bits = AF_BITS(AF_INET6);
|
||||||
p2->addr.u8[0] = 0xFE;
|
p2->addr.u8[0] = 0xFE;
|
||||||
|
@ -870,6 +873,7 @@ static int cidr_tomac(lua_State *L)
|
||||||
if (!(p2 = lua_newuserdata(L, sizeof(*p2))))
|
if (!(p2 = lua_newuserdata(L, sizeof(*p2))))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
p2->scope = 0;
|
||||||
p2->family = AF_PACKET;
|
p2->family = AF_PACKET;
|
||||||
p2->bits = AF_BITS(AF_PACKET);
|
p2->bits = AF_BITS(AF_PACKET);
|
||||||
p2->addr.u8[0] = p1->addr.u8[8] ^ 0x02;
|
p2->addr.u8[0] = p1->addr.u8[8] ^ 0x02;
|
||||||
|
|
Loading…
Reference in a new issue