commit
58f3a80956
Binary file not shown.
BIN
libnl-3.5.0.tar.gz
Normal file
BIN
libnl-3.5.0.tar.gz
Normal file
Binary file not shown.
Binary file not shown.
@ -1,30 +0,0 @@
|
|||||||
From a31948b905ac20e1d85cda56fb3672b44d66305e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Winter <Thomas.Winter@alliedtelesis.co.nz>
|
|
||||||
Date: Fri, 8 Jun 2018 15:43:53 +1200
|
|
||||||
Subject: [PATCH 55/76] ipgre: Fix wrong array size initialization
|
|
||||||
|
|
||||||
IPv4 GRE tunnels use the GRE defines.
|
|
||||||
|
|
||||||
Signed-off-by: Thomas Winter <Thomas.Winter@alliedtelesis.co.nz>
|
|
||||||
|
|
||||||
Fixes: 57bdc4ff4895dd91cc723d22eecadcf48945e87c
|
|
||||||
---
|
|
||||||
lib/route/link/ipgre.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/lib/route/link/ipgre.c b/lib/route/link/ipgre.c
|
|
||||||
index 6551323..a7665fe 100644
|
|
||||||
--- a/lib/route/link/ipgre.c
|
|
||||||
+++ b/lib/route/link/ipgre.c
|
|
||||||
@@ -91,7 +91,7 @@ static int ipgre_alloc(struct rtnl_link *link)
|
|
||||||
static int ipgre_parse(struct rtnl_link *link, struct nlattr *data,
|
|
||||||
struct nlattr *xstats)
|
|
||||||
{
|
|
||||||
- struct nlattr *tb[IFLA_IPTUN_MAX + 1];
|
|
||||||
+ struct nlattr *tb[IFLA_GRE_MAX + 1];
|
|
||||||
struct ipgre_info *ipgre;
|
|
||||||
int err;
|
|
||||||
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
||||||
@ -1,46 +0,0 @@
|
|||||||
From daa2edebe71d794284142696397bfce6fd45f926 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Winter <Thomas.Winter@alliedtelesis.co.nz>
|
|
||||||
Date: Fri, 8 Jun 2018 15:45:42 +1200
|
|
||||||
Subject: [PATCH 56/76] ipvti: Fix wrong array size initialization
|
|
||||||
|
|
||||||
IPv4 VTI tunnels use the VTI defines.
|
|
||||||
|
|
||||||
Signed-off-by: Thomas Winter <Thomas.Winter@alliedtelesis.co.nz>
|
|
||||||
|
|
||||||
Fixes: 8f6301426a00d992d00238c7ddd666e96aa63e28
|
|
||||||
---
|
|
||||||
lib/route/link/ipvti.c | 6 +++---
|
|
||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/route/link/ipvti.c b/lib/route/link/ipvti.c
|
|
||||||
index 0fa80ea..851d566 100644
|
|
||||||
--- a/lib/route/link/ipvti.c
|
|
||||||
+++ b/lib/route/link/ipvti.c
|
|
||||||
@@ -48,7 +48,7 @@ struct ipvti_info
|
|
||||||
uint32_t ipvti_mask;
|
|
||||||
};
|
|
||||||
|
|
||||||
-static struct nla_policy ipvti_policy[IFLA_GRE_MAX + 1] = {
|
|
||||||
+static struct nla_policy ipvti_policy[IFLA_VTI_MAX + 1] = {
|
|
||||||
[IFLA_VTI_LINK] = { .type = NLA_U32 },
|
|
||||||
[IFLA_VTI_IKEY] = { .type = NLA_U32 },
|
|
||||||
[IFLA_VTI_OKEY] = { .type = NLA_U32 },
|
|
||||||
@@ -76,13 +76,13 @@ static int ipvti_alloc(struct rtnl_link *link)
|
|
||||||
static int ipvti_parse(struct rtnl_link *link, struct nlattr *data,
|
|
||||||
struct nlattr *xstats)
|
|
||||||
{
|
|
||||||
- struct nlattr *tb[IFLA_IPTUN_MAX + 1];
|
|
||||||
+ struct nlattr *tb[IFLA_VTI_MAX + 1];
|
|
||||||
struct ipvti_info *ipvti;
|
|
||||||
int err;
|
|
||||||
|
|
||||||
NL_DBG(3, "Parsing IPVTI link info\n");
|
|
||||||
|
|
||||||
- err = nla_parse_nested(tb, IFLA_GRE_MAX, data, ipvti_policy);
|
|
||||||
+ err = nla_parse_nested(tb, IFLA_VTI_MAX, data, ipvti_policy);
|
|
||||||
if (err < 0)
|
|
||||||
goto errout;
|
|
||||||
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
From 52cd3c14ce42db53637f8f5dafaf0d5c24d724db Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Haller <thaller@redhat.com>
|
|
||||||
Date: Mon, 8 Oct 2018 13:41:25 +0200
|
|
||||||
Subject: [PATCH 62/76] lib/tc: ensure correct error code in
|
|
||||||
rtnl_tc_msg_build()
|
|
||||||
|
|
||||||
---
|
|
||||||
lib/route/tc.c | 10 +++++++---
|
|
||||||
1 file changed, 7 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/route/tc.c b/lib/route/tc.c
|
|
||||||
index 62efd35..061e54e 100644
|
|
||||||
--- a/lib/route/tc.c
|
|
||||||
+++ b/lib/route/tc.c
|
|
||||||
@@ -202,14 +202,16 @@ int rtnl_tc_msg_build(struct rtnl_tc *tc, int type, int flags,
|
|
||||||
.tcm_handle = tc->tc_handle,
|
|
||||||
.tcm_parent = tc->tc_parent,
|
|
||||||
};
|
|
||||||
- int err = -NLE_MSGSIZE;
|
|
||||||
+ int err;
|
|
||||||
|
|
||||||
msg = nlmsg_alloc_simple(type, flags);
|
|
||||||
if (!msg)
|
|
||||||
return -NLE_NOMEM;
|
|
||||||
|
|
||||||
- if (nlmsg_append(msg, &tchdr, sizeof(tchdr), NLMSG_ALIGNTO) < 0)
|
|
||||||
+ if (nlmsg_append(msg, &tchdr, sizeof(tchdr), NLMSG_ALIGNTO) < 0) {
|
|
||||||
+ err = -NLE_MSGSIZE;
|
|
||||||
goto nla_put_failure;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (tc->ce_mask & TCA_ATTR_KIND)
|
|
||||||
NLA_PUT_STRING(msg, TCA_KIND, tc->tc_kind);
|
|
||||||
@@ -220,8 +222,10 @@ int rtnl_tc_msg_build(struct rtnl_tc *tc, int type, int flags,
|
|
||||||
void *data = rtnl_tc_data(tc);
|
|
||||||
|
|
||||||
if (ops->to_msg_fill) {
|
|
||||||
- if (!(opts = nla_nest_start(msg, TCA_OPTIONS)))
|
|
||||||
+ if (!(opts = nla_nest_start(msg, TCA_OPTIONS))) {
|
|
||||||
+ err = -NLE_NOMEM;
|
|
||||||
goto nla_put_failure;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if ((err = ops->to_msg_fill(tc, data, msg)) < 0)
|
|
||||||
goto nla_put_failure;
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
||||||
@ -1,55 +0,0 @@
|
|||||||
From 1bffe3cc6739d95c1a42f12b417e98f9d6ee5e80 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Haller <thaller@redhat.com>
|
|
||||||
Date: Wed, 10 Oct 2018 10:59:27 +0200
|
|
||||||
Subject: [PATCH] lib/tc: fix uninitalized err variable in rtnl_tc_msg_build()
|
|
||||||
|
|
||||||
Fixes: 52cd3c14ce42db53637f8f5dafaf0d5c24d724db
|
|
||||||
---
|
|
||||||
lib/route/tc.c | 10 +++++++-----
|
|
||||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/route/tc.c b/lib/route/tc.c
|
|
||||||
index 061e54e..694c48e 100644
|
|
||||||
--- a/lib/route/tc.c
|
|
||||||
+++ b/lib/route/tc.c
|
|
||||||
@@ -210,11 +210,11 @@
|
|
||||||
|
|
||||||
if (nlmsg_append(msg, &tchdr, sizeof(tchdr), NLMSG_ALIGNTO) < 0) {
|
|
||||||
err = -NLE_MSGSIZE;
|
|
||||||
- goto nla_put_failure;
|
|
||||||
+ goto out_err;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tc->ce_mask & TCA_ATTR_KIND)
|
|
||||||
- NLA_PUT_STRING(msg, TCA_KIND, tc->tc_kind);
|
|
||||||
+ NLA_PUT_STRING(msg, TCA_KIND, tc->tc_kind);
|
|
||||||
|
|
||||||
ops = rtnl_tc_get_ops(tc);
|
|
||||||
if (ops && (ops->to_msg_fill || ops->to_msg_fill_raw)) {
|
|
||||||
@@ -224,21 +224,23 @@
|
|
||||||
if (ops->to_msg_fill) {
|
|
||||||
if (!(opts = nla_nest_start(msg, TCA_OPTIONS))) {
|
|
||||||
err = -NLE_NOMEM;
|
|
||||||
- goto nla_put_failure;
|
|
||||||
+ goto out_err;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((err = ops->to_msg_fill(tc, data, msg)) < 0)
|
|
||||||
- goto nla_put_failure;
|
|
||||||
+ goto out_err;
|
|
||||||
|
|
||||||
nla_nest_end(msg, opts);
|
|
||||||
} else if ((err = ops->to_msg_fill_raw(tc, data, msg)) < 0)
|
|
||||||
- goto nla_put_failure;
|
|
||||||
+ goto out_err;
|
|
||||||
}
|
|
||||||
|
|
||||||
*result = msg;
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
nla_put_failure:
|
|
||||||
+ err = -NLE_NOMEM;
|
|
||||||
+out_err:
|
|
||||||
nlmsg_free(msg);
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
@ -1,98 +0,0 @@
|
|||||||
From 470b98354627eb4ab9eeb67308bc2f2c746e83eb Mon Sep 17 00:00:00 2001
|
|
||||||
From: Wang Jian <jianjian.wang1@gmail.com>
|
|
||||||
Date: Sat, 29 Sep 2018 11:09:17 +0000
|
|
||||||
Subject: [PATCH 75/76] link: macvlan fixes
|
|
||||||
|
|
||||||
1. While parsing flags, it overrides mode.
|
|
||||||
2. Before, dump-line and dump-details are same leading that macvlan info will be shown twice while dumpping details.
|
|
||||||
So make dump-line show nothing.
|
|
||||||
3. Add some spaces to show dump-details more prettier.
|
|
||||||
|
|
||||||
Signed-off-by: Wang Jian <jianjian.wang1@gmail.com>
|
|
||||||
|
|
||||||
Fixes: c76393e2037d78eb60c32f95b26f5b1e5b9422a6
|
|
||||||
|
|
||||||
http://lists.infradead.org/pipermail/libnl/2018-August/002405.html
|
|
||||||
http://lists.infradead.org/pipermail/libnl/2018-September/002406.html
|
|
||||||
http://lists.infradead.org/pipermail/libnl/2018-September/002411.html
|
|
||||||
---
|
|
||||||
lib/route/link/macvlan.c | 23 ++++++++++++-----------
|
|
||||||
1 file changed, 12 insertions(+), 11 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/route/link/macvlan.c b/lib/route/link/macvlan.c
|
|
||||||
index ac90d0b..dbcea44 100644
|
|
||||||
--- a/lib/route/link/macvlan.c
|
|
||||||
+++ b/lib/route/link/macvlan.c
|
|
||||||
@@ -108,7 +108,7 @@ static int macvlan_parse(struct rtnl_link *link, struct nlattr *data,
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tb[IFLA_MACVLAN_FLAGS]) {
|
|
||||||
- mvi->mvi_mode = nla_get_u16(tb[IFLA_MACVLAN_FLAGS]);
|
|
||||||
+ mvi->mvi_flags = nla_get_u16(tb[IFLA_MACVLAN_FLAGS]);
|
|
||||||
mvi->mvi_mask |= MACVLAN_HAS_FLAGS;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -158,7 +158,7 @@ static void macvlan_free(struct rtnl_link *link)
|
|
||||||
link->l_info = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void macvlan_dump(struct rtnl_link *link, struct nl_dump_params *p)
|
|
||||||
+static void macvlan_dump_details(struct rtnl_link *link, struct nl_dump_params *p)
|
|
||||||
{
|
|
||||||
char buf[64];
|
|
||||||
uint32_t i;
|
|
||||||
@@ -166,23 +166,26 @@ static void macvlan_dump(struct rtnl_link *link, struct nl_dump_params *p)
|
|
||||||
|
|
||||||
if (mvi->mvi_mask & MACVLAN_HAS_MODE) {
|
|
||||||
rtnl_link_macvlan_mode2str(mvi->mvi_mode, buf, sizeof(buf));
|
|
||||||
- nl_dump(p, "%s-mode %s", link->l_info_ops->io_name, buf);
|
|
||||||
+ nl_dump(p, " %s-mode %s", link->l_info_ops->io_name, buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mvi->mvi_mask & MACVLAN_HAS_FLAGS) {
|
|
||||||
rtnl_link_macvlan_flags2str(mvi->mvi_flags, buf, sizeof(buf));
|
|
||||||
- nl_dump(p, "%s-flags %s", link->l_info_ops->io_name, buf);
|
|
||||||
+ nl_dump(p, " %s-flags %s", link->l_info_ops->io_name, buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mvi->mvi_mask & MACVLAN_HAS_MACADDR) {
|
|
||||||
- nl_dump(p, "macvlan-count %u", (unsigned) mvi->mvi_maccount);
|
|
||||||
+ nl_dump(p, " macvlan-count %u", (unsigned) mvi->mvi_maccount);
|
|
||||||
+
|
|
||||||
+ if (mvi->mvi_maccount)
|
|
||||||
+ nl_dump(p, " macvlan-sourcemac");
|
|
||||||
|
|
||||||
for (i = 0; i < mvi->mvi_maccount; i++) {
|
|
||||||
- nl_dump(p, "macvlan-sourcemac %s",
|
|
||||||
- nl_addr2str(mvi->mvi_macaddr[i], buf,
|
|
||||||
+ nl_dump(p, " %s", nl_addr2str(mvi->mvi_macaddr[i], buf,
|
|
||||||
sizeof(buf)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+ nl_dump(p, "\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
static int macvlan_clone(struct rtnl_link *dst, struct rtnl_link *src)
|
|
||||||
@@ -258,8 +261,7 @@ static struct rtnl_link_info_ops macvlan_info_ops = {
|
|
||||||
.io_alloc = macvlan_alloc,
|
|
||||||
.io_parse = macvlan_parse,
|
|
||||||
.io_dump = {
|
|
||||||
- [NL_DUMP_LINE] = macvlan_dump,
|
|
||||||
- [NL_DUMP_DETAILS] = macvlan_dump,
|
|
||||||
+ [NL_DUMP_DETAILS] = macvlan_dump_details,
|
|
||||||
},
|
|
||||||
.io_clone = macvlan_clone,
|
|
||||||
.io_put_attrs = macvlan_put_attrs,
|
|
||||||
@@ -271,8 +273,7 @@ static struct rtnl_link_info_ops macvtap_info_ops = {
|
|
||||||
.io_alloc = macvlan_alloc,
|
|
||||||
.io_parse = macvlan_parse,
|
|
||||||
.io_dump = {
|
|
||||||
- [NL_DUMP_LINE] = macvlan_dump,
|
|
||||||
- [NL_DUMP_DETAILS] = macvlan_dump,
|
|
||||||
+ [NL_DUMP_DETAILS] = macvlan_dump_details,
|
|
||||||
},
|
|
||||||
.io_clone = macvlan_clone,
|
|
||||||
.io_put_attrs = macvlan_put_attrs,
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
||||||
@ -1,27 +0,0 @@
|
|||||||
From 250a7c9ae91a726dfe33174f5281505add5cdbaa Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tobias Jungel <tobias.jungel@bisdn.de>
|
|
||||||
Date: Tue, 17 Apr 2018 13:49:23 +0200
|
|
||||||
Subject: [PATCH 49/76] nl-neigh-list: free allocated items
|
|
||||||
|
|
||||||
---
|
|
||||||
src/nl-neigh-list.c | 5 +++++
|
|
||||||
1 file changed, 5 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/nl-neigh-list.c b/src/nl-neigh-list.c
|
|
||||||
index ba4ade8..1581e17 100644
|
|
||||||
--- a/src/nl-neigh-list.c
|
|
||||||
+++ b/src/nl-neigh-list.c
|
|
||||||
@@ -87,5 +87,10 @@ int main(int argc, char *argv[])
|
|
||||||
|
|
||||||
nl_cache_dump_filter(neigh_cache, ¶ms, OBJ_CAST(neigh));
|
|
||||||
|
|
||||||
+ rtnl_neigh_put(neigh);
|
|
||||||
+ nl_cache_put(neigh_cache);
|
|
||||||
+ nl_cache_put(link_cache);
|
|
||||||
+ nl_socket_free(sock);
|
|
||||||
+
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
||||||
@ -1,34 +0,0 @@
|
|||||||
From 123dc07bcc3f402a500edf370d2000e171c91b34 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Patrick Havelange <patrick.havelange@tessares.net>
|
|
||||||
Date: Fri, 27 Jul 2018 14:39:35 +0200
|
|
||||||
Subject: [PATCH 74/76] nla_ok: fix overrun in attribute iteration.
|
|
||||||
|
|
||||||
A detailed explanation is provided in the original Linux kernel commit that
|
|
||||||
fixes the bug: 1045b03e07d85f3545118510a587035536030c1c
|
|
||||||
|
|
||||||
Valgrind spotted the issue when the remaining was negative.
|
|
||||||
This bug was triggering application crashes.
|
|
||||||
|
|
||||||
Signed-off-by: Patrick Havelange <patrick.havelange@tessares.net>
|
|
||||||
|
|
||||||
https://github.com/thom311/libnl/pull/199
|
|
||||||
---
|
|
||||||
lib/attr.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/lib/attr.c b/lib/attr.c
|
|
||||||
index 0928630..1ddc007 100644
|
|
||||||
--- a/lib/attr.c
|
|
||||||
+++ b/lib/attr.c
|
|
||||||
@@ -147,7 +147,7 @@ int nla_len(const struct nlattr *nla)
|
|
||||||
*/
|
|
||||||
int nla_ok(const struct nlattr *nla, int remaining)
|
|
||||||
{
|
|
||||||
- return remaining >= sizeof(*nla) &&
|
|
||||||
+ return remaining >= (int) sizeof(*nla) &&
|
|
||||||
nla->nla_len >= sizeof(*nla) &&
|
|
||||||
nla->nla_len <= remaining;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
||||||
@ -1,75 +0,0 @@
|
|||||||
From 1ac40683a879a602dbf8c42372677fb94f958a7d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ilya Pronin <ipronin@twitter.com>
|
|
||||||
Date: Thu, 23 Aug 2018 16:12:25 -0700
|
|
||||||
Subject: [PATCH 73/76] route/cls: fix potential memory leak
|
|
||||||
|
|
||||||
rtnl_act_append() cannot add more than TCA_ACT_MAX_PRIO actions to the
|
|
||||||
same list. Because of that rtnl_basic_add_action() and
|
|
||||||
rtnl_u32_add_action() should not increment the reference counter of the
|
|
||||||
given action until it is successfully added to the filter's list.
|
|
||||||
|
|
||||||
Signed-off-by: Ilya Pronin <ipronin@twitter.com>
|
|
||||||
|
|
||||||
Fixes: e5d9b828f6ec64fd77854578fbf1c33f214f3ac4
|
|
||||||
|
|
||||||
https://github.com/thom311/libnl/pull/201
|
|
||||||
---
|
|
||||||
lib/route/cls/basic.c | 6 +++++-
|
|
||||||
lib/route/cls/u32.c | 6 +++++-
|
|
||||||
2 files changed, 10 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/route/cls/basic.c b/lib/route/cls/basic.c
|
|
||||||
index 912ded6..3581c60 100644
|
|
||||||
--- a/lib/route/cls/basic.c
|
|
||||||
+++ b/lib/route/cls/basic.c
|
|
||||||
@@ -220,6 +220,7 @@ struct rtnl_ematch_tree *rtnl_basic_get_ematch(struct rtnl_cls *cls)
|
|
||||||
int rtnl_basic_add_action(struct rtnl_cls *cls, struct rtnl_act *act)
|
|
||||||
{
|
|
||||||
struct rtnl_basic *b;
|
|
||||||
+ int err;
|
|
||||||
|
|
||||||
if (!act)
|
|
||||||
return 0;
|
|
||||||
@@ -228,9 +229,12 @@ int rtnl_basic_add_action(struct rtnl_cls *cls, struct rtnl_act *act)
|
|
||||||
return -NLE_NOMEM;
|
|
||||||
|
|
||||||
b->b_mask |= BASIC_ATTR_ACTION;
|
|
||||||
+ if ((err = rtnl_act_append(&b->b_act, act)))
|
|
||||||
+ return err;
|
|
||||||
+
|
|
||||||
/* In case user frees it */
|
|
||||||
rtnl_act_get(act);
|
|
||||||
- return rtnl_act_append(&b->b_act, act);
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct rtnl_act* rtnl_basic_get_action(struct rtnl_cls *cls)
|
|
||||||
diff --git a/lib/route/cls/u32.c b/lib/route/cls/u32.c
|
|
||||||
index 0078888..f06bc24 100644
|
|
||||||
--- a/lib/route/cls/u32.c
|
|
||||||
+++ b/lib/route/cls/u32.c
|
|
||||||
@@ -526,6 +526,7 @@ int rtnl_u32_set_cls_terminal(struct rtnl_cls *cls)
|
|
||||||
int rtnl_u32_add_action(struct rtnl_cls *cls, struct rtnl_act *act)
|
|
||||||
{
|
|
||||||
struct rtnl_u32 *u;
|
|
||||||
+ int err;
|
|
||||||
|
|
||||||
if (!act)
|
|
||||||
return 0;
|
|
||||||
@@ -534,9 +535,12 @@ int rtnl_u32_add_action(struct rtnl_cls *cls, struct rtnl_act *act)
|
|
||||||
return -NLE_NOMEM;
|
|
||||||
|
|
||||||
u->cu_mask |= U32_ATTR_ACTION;
|
|
||||||
+ if ((err = rtnl_act_append(&u->cu_act, act)))
|
|
||||||
+ return err;
|
|
||||||
+
|
|
||||||
/* In case user frees it */
|
|
||||||
rtnl_act_get(act);
|
|
||||||
- return rtnl_act_append(&u->cu_act, act);
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct rtnl_act* rtnl_u32_get_action(struct rtnl_cls *cls)
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
||||||
@ -1,121 +0,0 @@
|
|||||||
From 1228a65963956300bd0466437530b975e0eaeec5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Haller <thaller@redhat.com>
|
|
||||||
Date: Mon, 6 Nov 2017 15:04:14 +0100
|
|
||||||
Subject: [PATCH 08/76] route: fix handling old_nh in rtnl_route_parse() and
|
|
||||||
avoid leak
|
|
||||||
|
|
||||||
The previous code would miss to release old_nh in the error
|
|
||||||
path.
|
|
||||||
|
|
||||||
Also, it relied on the present netlink attributes to have old_nh
|
|
||||||
initialized. Don't do that.
|
|
||||||
|
|
||||||
Also, fixup error codes by using "goto errout_nomem" where appropriate
|
|
||||||
and keep @err as returned from rtnl_route_set_metric().
|
|
||||||
---
|
|
||||||
lib/route/route_obj.c | 28 ++++++++++++++++++++--------
|
|
||||||
1 file changed, 20 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/route/route_obj.c b/lib/route/route_obj.c
|
|
||||||
index 8ae6b89..bc62408 100644
|
|
||||||
--- a/lib/route/route_obj.c
|
|
||||||
+++ b/lib/route/route_obj.c
|
|
||||||
@@ -1125,10 +1125,8 @@ int rtnl_route_parse(struct nlmsghdr *nlh, struct rtnl_route **result)
|
|
||||||
int err, family;
|
|
||||||
|
|
||||||
route = rtnl_route_alloc();
|
|
||||||
- if (!route) {
|
|
||||||
- err = -NLE_NOMEM;
|
|
||||||
- goto errout;
|
|
||||||
- }
|
|
||||||
+ if (!route)
|
|
||||||
+ goto errout_nomem;
|
|
||||||
|
|
||||||
route->ce_msgtype = nlh->nlmsg_type;
|
|
||||||
|
|
||||||
@@ -1213,7 +1211,9 @@ int rtnl_route_parse(struct nlmsghdr *nlh, struct rtnl_route **result)
|
|
||||||
for (i = 1; i <= RTAX_MAX; i++) {
|
|
||||||
if (mtb[i] && nla_len(mtb[i]) >= sizeof(uint32_t)) {
|
|
||||||
uint32_t m = nla_get_u32(mtb[i]);
|
|
||||||
- if (rtnl_route_set_metric(route, i, m) < 0)
|
|
||||||
+
|
|
||||||
+ err = rtnl_route_set_metric(route, i, m);
|
|
||||||
+ if (err < 0)
|
|
||||||
goto errout;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1231,14 +1231,14 @@ int rtnl_route_parse(struct nlmsghdr *nlh, struct rtnl_route **result)
|
|
||||||
|
|
||||||
if (tb[RTA_OIF]) {
|
|
||||||
if (!old_nh && !(old_nh = rtnl_route_nh_alloc()))
|
|
||||||
- goto errout;
|
|
||||||
+ goto errout_nomem;
|
|
||||||
|
|
||||||
rtnl_route_nh_set_ifindex(old_nh, nla_get_u32(tb[RTA_OIF]));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tb[RTA_GATEWAY]) {
|
|
||||||
if (!old_nh && !(old_nh = rtnl_route_nh_alloc()))
|
|
||||||
- goto errout;
|
|
||||||
+ goto errout_nomem;
|
|
||||||
|
|
||||||
if (!(addr = nl_addr_alloc_attr(tb[RTA_GATEWAY], family)))
|
|
||||||
goto errout_nomem;
|
|
||||||
@@ -1249,7 +1249,7 @@ int rtnl_route_parse(struct nlmsghdr *nlh, struct rtnl_route **result)
|
|
||||||
|
|
||||||
if (tb[RTA_FLOW]) {
|
|
||||||
if (!old_nh && !(old_nh = rtnl_route_nh_alloc()))
|
|
||||||
- goto errout;
|
|
||||||
+ goto errout_nomem;
|
|
||||||
|
|
||||||
rtnl_route_nh_set_realms(old_nh, nla_get_u32(tb[RTA_FLOW]));
|
|
||||||
}
|
|
||||||
@@ -1257,6 +1257,9 @@ int rtnl_route_parse(struct nlmsghdr *nlh, struct rtnl_route **result)
|
|
||||||
if (tb[RTA_NEWDST]) {
|
|
||||||
struct nl_addr *addr;
|
|
||||||
|
|
||||||
+ if (!old_nh && !(old_nh = rtnl_route_nh_alloc()))
|
|
||||||
+ goto errout_nomem;
|
|
||||||
+
|
|
||||||
addr = nl_addr_alloc_attr(tb[RTA_NEWDST], route->rt_family);
|
|
||||||
if (!addr)
|
|
||||||
goto errout_nomem;
|
|
||||||
@@ -1271,6 +1274,9 @@ int rtnl_route_parse(struct nlmsghdr *nlh, struct rtnl_route **result)
|
|
||||||
int alen = nla_len(tb[RTA_VIA]) - offsetof(struct rtvia, rtvia_addr);
|
|
||||||
struct rtvia *via = nla_data(tb[RTA_VIA]);
|
|
||||||
|
|
||||||
+ if (!old_nh && !(old_nh = rtnl_route_nh_alloc()))
|
|
||||||
+ goto errout_nomem;
|
|
||||||
+
|
|
||||||
addr = nl_addr_build(via->rtvia_family, via->rtvia_addr, alen);
|
|
||||||
if (!addr)
|
|
||||||
goto errout_nomem;
|
|
||||||
@@ -1287,6 +1293,9 @@ int rtnl_route_parse(struct nlmsghdr *nlh, struct rtnl_route **result)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tb[RTA_ENCAP] && tb[RTA_ENCAP_TYPE]) {
|
|
||||||
+ if (!old_nh && !(old_nh = rtnl_route_nh_alloc()))
|
|
||||||
+ goto errout_nomem;
|
|
||||||
+
|
|
||||||
err = nh_encap_parse_msg(tb[RTA_ENCAP],
|
|
||||||
tb[RTA_ENCAP_TYPE], old_nh);
|
|
||||||
if (err)
|
|
||||||
@@ -1319,12 +1328,15 @@ int rtnl_route_parse(struct nlmsghdr *nlh, struct rtnl_route **result)
|
|
||||||
|
|
||||||
rtnl_route_nh_free(old_nh);
|
|
||||||
}
|
|
||||||
+ old_nh = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
*result = route;
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
errout:
|
|
||||||
+ if (old_nh)
|
|
||||||
+ rtnl_route_nh_free(old_nh);
|
|
||||||
rtnl_route_put(route);
|
|
||||||
return err;
|
|
||||||
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
||||||
@ -1,45 +0,0 @@
|
|||||||
From 4e2f5dfa6484a90d8c01f5d5f9c46dddab8d86e9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tuetuopay <tuetuopay@me.com>
|
|
||||||
Date: Mon, 9 Apr 2018 16:21:41 +0200
|
|
||||||
Subject: [PATCH 41/76] route/link: fix sequence number handling in
|
|
||||||
rtnl_link_change()
|
|
||||||
|
|
||||||
When rtnl_link_change() fails with -NLE_OPNOTSUPP, it retries
|
|
||||||
with RTM_SETLINK operation. However, it also needs to re-adjust
|
|
||||||
the sequence number. Otherwise, the second request might fail
|
|
||||||
with NLE_SEQ_MISMATCH, although it actually succeeded.
|
|
||||||
|
|
||||||
[thaller@redhat.com: changed commit message]
|
|
||||||
|
|
||||||
https://github.com/thom311/libnl/issues/179
|
|
||||||
https://github.com/thom311/libnl/pull/184
|
|
||||||
---
|
|
||||||
lib/route/link.c | 5 +++++
|
|
||||||
1 file changed, 5 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/lib/route/link.c b/lib/route/link.c
|
|
||||||
index de3c393..40165e5 100644
|
|
||||||
--- a/lib/route/link.c
|
|
||||||
+++ b/lib/route/link.c
|
|
||||||
@@ -1772,6 +1772,10 @@ errout:
|
|
||||||
* @note The link name can only be changed if the link has been put
|
|
||||||
* in opertional down state. (~IF_UP)
|
|
||||||
*
|
|
||||||
+ * @note On versions up to 3.4.0, \c NLE_SEQ_MISMATCH would be returned if the
|
|
||||||
+ * kernel does not supports \c RTM_NEWLINK. It is advised to ignore the
|
|
||||||
+ * error code if you cannot upgrade the library.
|
|
||||||
+ *
|
|
||||||
* @return 0 on success or a negative error code.
|
|
||||||
*/
|
|
||||||
int rtnl_link_change(struct nl_sock *sk, struct rtnl_link *orig,
|
|
||||||
@@ -1792,6 +1796,7 @@ retry:
|
|
||||||
err = wait_for_ack(sk);
|
|
||||||
if (err == -NLE_OPNOTSUPP && msg->nm_nlh->nlmsg_type == RTM_NEWLINK) {
|
|
||||||
msg->nm_nlh->nlmsg_type = RTM_SETLINK;
|
|
||||||
+ msg->nm_nlh->nlmsg_seq = NL_AUTO_SEQ;
|
|
||||||
goto retry;
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
From cd5f6f842905b83d8c49f3eacb17273997036552 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tuetuopay <tuetuopay@me.com>
|
|
||||||
Date: Tue, 15 May 2018 14:11:20 +0200
|
|
||||||
Subject: [PATCH 53/76] route/link/vxlan: Fix IPv4 set_local resetting ce_mask
|
|
||||||
|
|
||||||
rtnl_link_vxlan_set_local() removes the bit for the other IP version in
|
|
||||||
ce_mask. A missing flag inversion in the v4 part made this removal
|
|
||||||
reset all bits to 0 except the v6 one, screwing all link configuration.
|
|
||||||
|
|
||||||
Fixes: 2e68fb5b02304fa6a3e6429c4fdabb084e61b501
|
|
||||||
|
|
||||||
https://github.com/thom311/libnl/pull/192
|
|
||||||
---
|
|
||||||
lib/route/link/vxlan.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/lib/route/link/vxlan.c b/lib/route/link/vxlan.c
|
|
||||||
index 9e578ec..686ac31 100644
|
|
||||||
--- a/lib/route/link/vxlan.c
|
|
||||||
+++ b/lib/route/link/vxlan.c
|
|
||||||
@@ -889,7 +889,7 @@ int rtnl_link_vxlan_set_local(struct rtnl_link *link, struct nl_addr *addr)
|
|
||||||
memcpy(&vxi->vxi_local, nl_addr_get_binary_addr(addr),
|
|
||||||
sizeof(vxi->vxi_local));
|
|
||||||
vxi->ce_mask |= VXLAN_ATTR_LOCAL;
|
|
||||||
- vxi->ce_mask &= VXLAN_ATTR_LOCAL6;
|
|
||||||
+ vxi->ce_mask &= ~VXLAN_ATTR_LOCAL6;
|
|
||||||
} else if ((nl_addr_get_family(addr) == AF_INET6) &&
|
|
||||||
(nl_addr_get_len(addr) == sizeof(vxi->vxi_local6))) {
|
|
||||||
memcpy(&vxi->vxi_local6, nl_addr_get_binary_addr(addr),
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
From be550df10993c89e9367a860d5060c632ed9afbf Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Haller <thaller@redhat.com>
|
|
||||||
Date: Mon, 23 Oct 2017 10:54:10 +0200
|
|
||||||
Subject: [PATCH 07/76] route/vlan: add capability to indicate heap overflow
|
|
||||||
fix in rtnl_link_vlan_set_egress_map()
|
|
||||||
|
|
||||||
Without this fix/capablity, adding more then 4 mappings in
|
|
||||||
rtnl_link_vlan_set_egress_map() overflows the heap.
|
|
||||||
---
|
|
||||||
include/netlink/utils.h | 8 ++++++++
|
|
||||||
lib/utils.c | 2 +-
|
|
||||||
2 files changed, 9 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/include/netlink/utils.h b/include/netlink/utils.h
|
|
||||||
index 10e76ce..dc22c9d 100644
|
|
||||||
--- a/include/netlink/utils.h
|
|
||||||
+++ b/include/netlink/utils.h
|
|
||||||
@@ -286,6 +286,14 @@ enum {
|
|
||||||
NL_CAPABILITY_VERSION_3_4_0 = 28,
|
|
||||||
#define NL_CAPABILITY_VERSION_3_4_0 NL_CAPABILITY_VERSION_3_4_0
|
|
||||||
|
|
||||||
+ /**
|
|
||||||
+ * Fixed memory corruption in rtnl_link_vlan_set_egress_map(). Previously, if you tried
|
|
||||||
+ * to add more then 4 mappings, a buffer overflow occured. Also fixed nl_object_clone()
|
|
||||||
+ * for VLAN links.
|
|
||||||
+ */
|
|
||||||
+ NL_CAPABILITY_ROUTE_FIX_VLAN_SET_EGRESS_MAP = 29,
|
|
||||||
+#define NL_CAPABILITY_ROUTE_FIX_VLAN_SET_EGRESS_MAP NL_CAPABILITY_ROUTE_FIX_VLAN_SET_EGRESS_MAP
|
|
||||||
+
|
|
||||||
__NL_CAPABILITY_MAX,
|
|
||||||
NL_CAPABILITY_MAX = (__NL_CAPABILITY_MAX - 1),
|
|
||||||
#define NL_CAPABILITY_MAX NL_CAPABILITY_MAX
|
|
||||||
diff --git a/lib/utils.c b/lib/utils.c
|
|
||||||
index 544feda..eefe802 100644
|
|
||||||
--- a/lib/utils.c
|
|
||||||
+++ b/lib/utils.c
|
|
||||||
@@ -1221,7 +1221,7 @@ int nl_has_capability (int capability)
|
|
||||||
NL_CAPABILITY_XFRM_SP_SEC_CTX_LEN,
|
|
||||||
NL_CAPABILITY_VERSION_3_3_0,
|
|
||||||
NL_CAPABILITY_VERSION_3_4_0,
|
|
||||||
- 0,
|
|
||||||
+ NL_CAPABILITY_ROUTE_FIX_VLAN_SET_EGRESS_MAP,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0),
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
||||||
@ -1,58 +0,0 @@
|
|||||||
From f9d68741065182f4c75a17426246f12a4aeb3c56 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Thomas Haller <thaller@redhat.com>
|
|
||||||
Date: Mon, 23 Oct 2017 11:35:32 +0200
|
|
||||||
Subject: [PATCH 05/76] route/vlan: fix cloning vlan link in vlan_clone()
|
|
||||||
|
|
||||||
We need to copy the entire source struct over
|
|
||||||
from source to destination.
|
|
||||||
|
|
||||||
The only thing that needs special handling is
|
|
||||||
to deep-clone the vi_egress_qos buffer.
|
|
||||||
|
|
||||||
Fixes: a7469ce758fac3631df6ce72eb3f89150070e7f8
|
|
||||||
---
|
|
||||||
lib/route/link/vlan.c | 21 +++++++++++++++------
|
|
||||||
1 file changed, 15 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/route/link/vlan.c b/lib/route/link/vlan.c
|
|
||||||
index 477c9af..23fdf66 100644
|
|
||||||
--- a/lib/route/link/vlan.c
|
|
||||||
+++ b/lib/route/link/vlan.c
|
|
||||||
@@ -264,19 +264,28 @@ static int vlan_clone(struct rtnl_link *dst, struct rtnl_link *src)
|
|
||||||
{
|
|
||||||
struct vlan_info *vdst, *vsrc = src->l_info;
|
|
||||||
int err;
|
|
||||||
+ struct vlan_map *p = NULL;
|
|
||||||
|
|
||||||
dst->l_info = NULL;
|
|
||||||
if ((err = rtnl_link_set_type(dst, "vlan")) < 0)
|
|
||||||
return err;
|
|
||||||
vdst = dst->l_info;
|
|
||||||
|
|
||||||
- vdst->vi_egress_qos = calloc(vsrc->vi_egress_size,
|
|
||||||
- sizeof(struct vlan_map));
|
|
||||||
- if (!vdst->vi_egress_qos)
|
|
||||||
- return -NLE_NOMEM;
|
|
||||||
+ if (vsrc->vi_negress) {
|
|
||||||
+ p = calloc(vsrc->vi_negress,
|
|
||||||
+ sizeof(struct vlan_map));
|
|
||||||
+ if (!p)
|
|
||||||
+ return -NLE_NOMEM;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- memcpy(vdst->vi_egress_qos, vsrc->vi_egress_qos,
|
|
||||||
- vsrc->vi_egress_size * sizeof(struct vlan_map));
|
|
||||||
+ *vdst = *vsrc;
|
|
||||||
+
|
|
||||||
+ if (vsrc->vi_negress) {
|
|
||||||
+ vdst->vi_egress_size = vsrc->vi_negress;
|
|
||||||
+ vdst->vi_egress_qos = p;
|
|
||||||
+ memcpy(vdst->vi_egress_qos, vsrc->vi_egress_qos,
|
|
||||||
+ vsrc->vi_negress * sizeof(struct vlan_map));
|
|
||||||
+ }
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
||||||
@ -1,35 +0,0 @@
|
|||||||
From 6dfb40acd9b0b421b587f26840dfc072211976c2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sebastian Bixl <sebastianbixl@gmx.de>
|
|
||||||
Date: Sun, 15 Oct 2017 22:34:01 +0200
|
|
||||||
Subject: [PATCH 04/76] route/vlan: fix memory corruption in
|
|
||||||
rtnl_link_vlan_set_egress_map
|
|
||||||
|
|
||||||
If you set more than four entries for the vlan egress map a memory
|
|
||||||
corruption occurs because the reallocation does not reserve memory
|
|
||||||
for more than four.
|
|
||||||
|
|
||||||
Fixes: a7469ce758fac3631df6ce72eb3f89150070e7f8
|
|
||||||
|
|
||||||
https://github.com/thom311/libnl/pull/155
|
|
||||||
|
|
||||||
[thaller@redhat.com: squashed commits and updated commit message]
|
|
||||||
---
|
|
||||||
lib/route/link/vlan.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/lib/route/link/vlan.c b/lib/route/link/vlan.c
|
|
||||||
index 118d5a0..477c9af 100644
|
|
||||||
--- a/lib/route/link/vlan.c
|
|
||||||
+++ b/lib/route/link/vlan.c
|
|
||||||
@@ -589,7 +589,7 @@ int rtnl_link_vlan_set_egress_map(struct rtnl_link *link, uint32_t from, int to)
|
|
||||||
int new_size = vi->vi_egress_size + 32;
|
|
||||||
void *ptr;
|
|
||||||
|
|
||||||
- ptr = realloc(vi->vi_egress_qos, new_size);
|
|
||||||
+ ptr = realloc(vi->vi_egress_qos, new_size * sizeof(struct vlan_map));
|
|
||||||
if (!ptr)
|
|
||||||
return -NLE_NOMEM;
|
|
||||||
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
From c3db1c47828628413a65786efabe46cffa366c7c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jonas Johansson <jonasj76@gmail.com>
|
|
||||||
Date: Mon, 12 Mar 2018 13:51:36 +0100
|
|
||||||
Subject: [PATCH 28/76] route/vrf: initalize clone destination with NULL in
|
|
||||||
vrf_clone()
|
|
||||||
|
|
||||||
Signed-off-by: Jonas Johansson <jonasj76@gmail.com>
|
|
||||||
---
|
|
||||||
lib/route/link/vrf.c | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/lib/route/link/vrf.c b/lib/route/link/vrf.c
|
|
||||||
index 84d2d8b..8b6b451 100644
|
|
||||||
--- a/lib/route/link/vrf.c
|
|
||||||
+++ b/lib/route/link/vrf.c
|
|
||||||
@@ -107,6 +107,7 @@ static int vrf_clone(struct rtnl_link *dst, struct rtnl_link *src)
|
|
||||||
struct vrf_info *vdst, *vsrc = src->l_info;
|
|
||||||
int err;
|
|
||||||
|
|
||||||
+ dst->l_info = NULL;
|
|
||||||
if ((err = rtnl_link_set_type(dst, "vrf")) < 0)
|
|
||||||
return err;
|
|
||||||
vdst = dst->l_info;
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
||||||
40
libnl3.spec
40
libnl3.spec
@ -1,28 +1,13 @@
|
|||||||
|
%define ver 3_5_0
|
||||||
Name: libnl3
|
Name: libnl3
|
||||||
Version: 3.4.0
|
Version: 3.5.0
|
||||||
Release: 8
|
Release: 1
|
||||||
Summary: Providing APIs to netlink protocol based Linux kernel interfaces
|
Summary: Providing APIs to netlink protocol based Linux kernel interfaces
|
||||||
License: LGPLv2
|
License: LGPLv2
|
||||||
URL: http://www.infradead.org/~tgr/libnl/
|
URL: http://www.infradead.org/~tgr/libnl/
|
||||||
Source: http://www.infradead.org/~tgr/libnl/files/libnl-%{version}.tar.gz
|
Source: https://github.com/thom311/libnl/releases/download/libnl%{uver}/libnl-%{version}.tar.gz
|
||||||
Source1: http://www.infradead.org/~tgr/libnl/files/libnl-doc-%{version}.tar.gz
|
|
||||||
Patch9000: solve-redefinition-of-struct-ipv6_mreq.patch
|
|
||||||
|
|
||||||
Patch6001: libnl3-route-vlan-fix-memory-corruption-in-rtnl_link_vlan_s.patch
|
Patch9000: solve-redefinition-of-struct-ipv6_mreq.patch
|
||||||
Patch6002: libnl3-route-vlan-fix-cloning-vlan-link-in-vlan_clone.patch
|
|
||||||
Patch6003: libnl3-route-vlan-add-capability-to-indicate-heap-overflow-.patch
|
|
||||||
Patch6004: libnl3-route-fix-handling-old_nh-in-rtnl_route_parse-and-av.patch
|
|
||||||
Patch6005: libnl3-route-vrf-initalize-clone-destination-with-NULL-in-v.patch
|
|
||||||
Patch6006: libnl3-route-link-fix-sequence-number-handling-in-rtnl_link.patch
|
|
||||||
Patch6007: libnl3-nl-neigh-list-free-allocated-items.patch
|
|
||||||
Patch6008: libnl3-route-link-vxlan-Fix-IPv4-set_local-resetting-ce_mas.patch
|
|
||||||
Patch6009: libnl3-ipgre-Fix-wrong-array-size-initialization.patch
|
|
||||||
Patch6010: libnl3-ipvti-Fix-wrong-array-size-initialization.patch
|
|
||||||
Patch6011: libnl3-lib-tc-ensure-correct-error-code-in-rtnl_tc_msg_buil.patch
|
|
||||||
Patch6012: libnl3-lib-tc-fix-uninitalized-err-variable-in-rtnl_tc_msg_.patch
|
|
||||||
Patch6013: libnl3-route-cls-fix-potential-memory-leak.patch
|
|
||||||
Patch6014: libnl3-nla_ok-fix-overrun-in-attribute-iteration.patch
|
|
||||||
Patch6015: libnl3-link-macvlan-fixes.patch
|
|
||||||
|
|
||||||
BuildRequires: flex bison libtool autoconf automake swig
|
BuildRequires: flex bison libtool autoconf automake swig
|
||||||
Requires: %{name} = %{version}-%{release}
|
Requires: %{name} = %{version}-%{release}
|
||||||
@ -69,8 +54,6 @@ Python2 bindings for libnl3
|
|||||||
%prep
|
%prep
|
||||||
%autosetup -n libnl-%{version} -p1
|
%autosetup -n libnl-%{version} -p1
|
||||||
|
|
||||||
tar -xzf %SOURCE1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
autoreconf -vif
|
autoreconf -vif
|
||||||
%configure --disable-static
|
%configure --disable-static
|
||||||
@ -98,8 +81,7 @@ cd python
|
|||||||
%{__python2} setup.py check
|
%{__python2} setup.py check
|
||||||
%{__python3} setup.py check
|
%{__python3} setup.py check
|
||||||
|
|
||||||
%post -p /sbin/ldconfig
|
%ldconfig_scriptlets
|
||||||
%postun -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%doc COPYING
|
%doc COPYING
|
||||||
@ -114,13 +96,6 @@ cd python
|
|||||||
%{_libdir}/pkgconfig/*.pc
|
%{_libdir}/pkgconfig/*.pc
|
||||||
|
|
||||||
%files help
|
%files help
|
||||||
%doc libnl-doc-%{version}/*.html
|
|
||||||
%doc libnl-doc-%{version}/*.css
|
|
||||||
%doc libnl-doc-%{version}/stylesheets/*
|
|
||||||
%doc libnl-doc-%{version}/images/*
|
|
||||||
%doc libnl-doc-%{version}/images/icons/*
|
|
||||||
%doc libnl-doc-%{version}/images/icons/callouts/*
|
|
||||||
%doc libnl-doc-%{version}/api/*
|
|
||||||
%{_mandir}/man8/*
|
%{_mandir}/man8/*
|
||||||
|
|
||||||
%files -n python3-libnl3
|
%files -n python3-libnl3
|
||||||
@ -132,6 +107,9 @@ cd python
|
|||||||
%{python2_sitearch}/netlink-*.egg-info
|
%{python2_sitearch}/netlink-*.egg-info
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Jan 12 2020 openEuler Buildteam <buildteam@openeuler.org> - 3.5.0-1
|
||||||
|
- update software to 3.5.0
|
||||||
|
|
||||||
* Wed Dec 25 2019 openEuler Buildteam <buildteam@openeuler.org> - 3.4.0-8
|
* Wed Dec 25 2019 openEuler Buildteam <buildteam@openeuler.org> - 3.4.0-8
|
||||||
- Type:bugfix
|
- Type:bugfix
|
||||||
- Id:NA
|
- Id:NA
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user