summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2019-10-04 18:34:31 -0700
committerMichael Forney <mforney@mforney.org>2019-10-04 18:34:31 -0700
commit9b268df2f79e112b98dce51fe9359dbce126711e (patch)
tree32baf8d3b28217829ead260202ee3182b72fe318 /pkg
parente6df1e7263e94204d4445eb684c3df13e9fc8a1a (diff)
libnl: Update to 3.5.0
Diffstat (limited to 'pkg')
-rw-r--r--pkg/libnl/defs.h6
-rw-r--r--pkg/libnl/gen.lua6
-rw-r--r--pkg/libnl/patch/0001-Remove-redundant-linux-in6.h-include.patch24
-rw-r--r--pkg/libnl/patch/0001-Use-static-inline-functions-for-min-and-max.patch (renamed from pkg/libnl/patch/0005-Use-static-inline-functions-for-min-and-max.patch)30
-rw-r--r--pkg/libnl/patch/0002-Avoid-pointer-arithmetic-on-void.patch139
-rw-r--r--pkg/libnl/patch/0002-Avoid-statement-expression-in-nl_container_of.patch (renamed from pkg/libnl/patch/0006-Avoid-statement-expression-in-nl_container_of.patch)8
-rw-r--r--pkg/libnl/patch/0003-Avoid-initialization-of-flexible-array-member.patch (renamed from pkg/libnl/patch/0008-Avoid-initialization-of-flexible-array-member.patch)8
-rw-r--r--pkg/libnl/patch/0003-Don-t-return-expression-in-function-returning-void.patch39
-rw-r--r--pkg/libnl/patch/0004-Avoid-statement-expression-in-ATTR_DIFF-macro.patch (renamed from pkg/libnl/patch/0009-Avoid-statement-expression-in-ATTR_DIFF-macro.patch)4
-rw-r--r--pkg/libnl/patch/0004-Don-t-omit-second-operand-to-operator.patch25
-rw-r--r--pkg/libnl/patch/0005-Remove-_nl_auto-helpers.patch238
-rw-r--r--pkg/libnl/patch/0007-Use-__typeof__-instead-of-typeof.patch37
-rw-r--r--pkg/libnl/patch/0010-Fallback-to-alloca-when-VLAs-aren-t-available.patch28
m---------pkg/libnl/src0
-rw-r--r--pkg/libnl/ver2
15 files changed, 270 insertions, 324 deletions
diff --git a/pkg/libnl/defs.h b/pkg/libnl/defs.h
index c875a919..b5f7ab49 100644
--- a/pkg/libnl/defs.h
+++ b/pkg/libnl/defs.h
@@ -16,12 +16,12 @@
#define PACKAGE "libnl"
#define PACKAGE_BUGREPORT ""
#define PACKAGE_NAME "libnl"
-#define PACKAGE_STRING "libnl 3.4.0"
+#define PACKAGE_STRING "libnl 3.5.0"
#define PACKAGE_TARNAME "libnl"
#define PACKAGE_URL "http://www.infradead.org/~tgr/libnl/"
-#define PACKAGE_VERSION "3.4.0"
+#define PACKAGE_VERSION "3.5.0"
#define STDC_HEADERS 1
-#define VERSION "3.4.0"
+#define VERSION "3.5.0"
/* #undef const */
#ifndef __cplusplus
/* #undef inline */
diff --git a/pkg/libnl/gen.lua b/pkg/libnl/gen.lua
index f0aeb71e..7d9655cd 100644
--- a/pkg/libnl/gen.lua
+++ b/pkg/libnl/gen.lua
@@ -9,10 +9,10 @@ cflags{
build('sed', '$outdir/include/netlink/version.h', '$srcdir/include/netlink/version.h.in', {
expr={
- '-e s,@PACKAGE_STRING@,\'libnl 3.4.0\',',
- '-e s,@PACKAGE_VERSION@,3.4.0,',
+ '-e s,@PACKAGE_STRING@,\'libnl 3.5.0\',',
+ '-e s,@PACKAGE_VERSION@,3.5.0,',
'-e s,@MAJ_VERSION@,3,',
- '-e s,@MIN_VERSION@,4,',
+ '-e s,@MIN_VERSION@,5,',
'-e s,@MIC_VERSION@,0,',
'-e s,@LT_CURRENT@,226,',
'-e s,@LT_REVISION@,0,',
diff --git a/pkg/libnl/patch/0001-Remove-redundant-linux-in6.h-include.patch b/pkg/libnl/patch/0001-Remove-redundant-linux-in6.h-include.patch
deleted file mode 100644
index a0c3d8a6..00000000
--- a/pkg/libnl/patch/0001-Remove-redundant-linux-in6.h-include.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From c3556dfb4b2b6467e5d0b0468c2dac8b602ae733 Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Sun, 1 Jan 2017 16:42:21 -0800
-Subject: [PATCH] Remove redundant linux/in6.h include
-
----
- include/linux-private/linux/ipv6.h | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/include/linux-private/linux/ipv6.h b/include/linux-private/linux/ipv6.h
-index e05e684..f16349d 100644
---- a/include/linux-private/linux/ipv6.h
-+++ b/include/linux-private/linux/ipv6.h
-@@ -2,7 +2,6 @@
- #define _IPV6_H
-
- #include <asm/byteorder.h>
--#include <linux/in6.h>
-
- /* The latest drafts declared increase in minimal mtu up to 1280. */
-
---
-2.11.0
-
diff --git a/pkg/libnl/patch/0005-Use-static-inline-functions-for-min-and-max.patch b/pkg/libnl/patch/0001-Use-static-inline-functions-for-min-and-max.patch
index af06405e..c5d1cb9b 100644
--- a/pkg/libnl/patch/0005-Use-static-inline-functions-for-min-and-max.patch
+++ b/pkg/libnl/patch/0001-Use-static-inline-functions-for-min-and-max.patch
@@ -1,4 +1,4 @@
-From e9dc83c59917fc86d3bd684a6b1d31e1619bc07e Mon Sep 17 00:00:00 2001
+From 5205a990e10f9bf1102c719198f82aba342cbca5 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 11 Aug 2019 05:05:09 +0000
Subject: [PATCH] Use static inline functions for min and max
@@ -16,22 +16,22 @@ expressions.
6 files changed, 16 insertions(+), 21 deletions(-)
diff --git a/include/netlink-private/netlink.h b/include/netlink-private/netlink.h
-index 728ca5c..d9a3597 100644
+index 5f6e3f7..fca3133 100644
--- a/include/netlink-private/netlink.h
+++ b/include/netlink-private/netlink.h
-@@ -159,22 +159,17 @@ static inline int nl_cb_call(struct nl_cb *cb, enum nl_cb_type type, struct nl_m
+@@ -158,22 +158,17 @@ static inline int nl_cb_call(struct nl_cb *cb, enum nl_cb_type type, struct nl_m
#undef __deprecated
#define __deprecated __attribute__ ((deprecated))
-#define min(x,y) ({ \
-- typeof(x) _x = (x); \
-- typeof(y) _y = (y); \
+- __typeof__(x) _x = (x); \
+- __typeof__(y) _y = (y); \
- (void) (&_x == &_y); \
- _x < _y ? _x : _y; })
-
-#define max(x,y) ({ \
-- typeof(x) _x = (x); \
-- typeof(y) _y = (y); \
+- __typeof__(x) _x = (x); \
+- __typeof__(y) _y = (y); \
- (void) (&_x == &_y); \
- _x > _y ? _x : _y; })
-
@@ -54,10 +54,10 @@ index 728ca5c..d9a3597 100644
extern int nl_cache_parse(struct nl_cache_ops *, struct sockaddr_nl *,
struct nlmsghdr *, struct nl_parser_param *);
diff --git a/lib/attr.c b/lib/attr.c
-index 7c0ac4d..9382b7f 100644
+index a4f5852..025627e 100644
--- a/lib/attr.c
+++ b/lib/attr.c
-@@ -357,7 +357,7 @@ int nla_memcpy(void *dest, const struct nlattr *src, int count)
+@@ -358,7 +358,7 @@ int nla_memcpy(void *dest, const struct nlattr *src, int count)
if (!src)
return 0;
@@ -67,10 +67,10 @@ index 7c0ac4d..9382b7f 100644
return minlen;
diff --git a/lib/msg.c b/lib/msg.c
-index 0ce5887..226a1d2 100644
+index c08b3a4..d854df3 100644
--- a/lib/msg.c
+++ b/lib/msg.c
-@@ -154,7 +154,7 @@ struct nlattr *nlmsg_attrdata(const struct nlmsghdr *nlh, int hdrlen)
+@@ -155,7 +155,7 @@ struct nlattr *nlmsg_attrdata(const struct nlmsghdr *nlh, int hdrlen)
*/
int nlmsg_attrlen(const struct nlmsghdr *nlh, int hdrlen)
{
@@ -80,7 +80,7 @@ index 0ce5887..226a1d2 100644
/** @} */
diff --git a/lib/route/cls/ematch_syntax.y b/lib/route/cls/ematch_syntax.y
-index a0ca4bb..d730511 100644
+index 82d753d..88665cc 100644
--- a/lib/route/cls/ematch_syntax.y
+++ b/lib/route/cls/ematch_syntax.y
@@ -411,7 +411,7 @@ pattern:
@@ -106,10 +106,10 @@ index 6651bc3..e33a3fe 100644
for (i = 0; i < len; i++)
id->i_confset[i] = 1;
diff --git a/lib/route/link/inet6.c b/lib/route/link/inet6.c
-index e638d06..8f403ce 100644
+index f02792c..8a3de01 100644
--- a/lib/route/link/inet6.c
+++ b/lib/route/link/inet6.c
-@@ -197,7 +197,7 @@ static int inet6_parse_protinfo(struct rtnl_link *link, struct nlattr *attr,
+@@ -199,7 +199,7 @@ static int inet6_parse_protinfo(struct rtnl_link *link, struct nlattr *attr,
map_stat_id = map_stat_id_from_IPSTATS_MIB_v1;
}
@@ -119,5 +119,5 @@ index e638d06..8f403ce 100644
memcpy(&stat, &cnt[i * sizeof(stat)], sizeof(stat));
rtnl_link_set_stat(link, map_stat_id[i], stat);
--
-2.22.0
+2.23.0
diff --git a/pkg/libnl/patch/0002-Avoid-pointer-arithmetic-on-void.patch b/pkg/libnl/patch/0002-Avoid-pointer-arithmetic-on-void.patch
deleted file mode 100644
index 3af9aa55..00000000
--- a/pkg/libnl/patch/0002-Avoid-pointer-arithmetic-on-void.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-From 02a03be66ad59503e43be9d7915ae18161007e6f Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Sun, 11 Aug 2019 04:49:07 +0000
-Subject: [PATCH] Avoid pointer arithmetic on `void *`
-
-ISO C requires that the pointer operand to the binary + operator be to
-a complete object type[0].
-
-[0] http://port70.net/~nsz/c/c11/n1570.html#6.5.6p2
----
- lib/attr.c | 8 ++++----
- lib/data.c | 2 +-
- lib/genl/genl.c | 4 ++--
- lib/msg.c | 6 +++---
- lib/object.c | 2 +-
- 5 files changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/lib/attr.c b/lib/attr.c
-index 0dca3ec..7c0ac4d 100644
---- a/lib/attr.c
-+++ b/lib/attr.c
-@@ -477,7 +477,7 @@ struct nlattr *nla_reserve(struct nl_msg *msg, int attrtype, int attrlen)
- NL_DBG(2, "msg %p: attr <%p> %d: Reserved %d (%d) bytes at offset +%td "
- "nlmsg_len=%d\n", msg, nla, nla->nla_type,
- nla_total_size(attrlen), attrlen,
-- (void *) nla - nlmsg_data(msg->nm_nlh),
-+ (char *) nla - (char *) nlmsg_data(msg->nm_nlh),
- msg->nm_nlh->nlmsg_len);
-
- return nla;
-@@ -513,7 +513,7 @@ int nla_put(struct nl_msg *msg, int attrtype, int datalen, const void *data)
- memcpy(nla_data(nla), data, datalen);
- NL_DBG(2, "msg %p: attr <%p> %d: Wrote %d bytes at offset +%td\n",
- msg, nla, nla->nla_type, datalen,
-- (void *) nla - nlmsg_data(msg->nm_nlh));
-+ (char *) nla - (char *) nlmsg_data(msg->nm_nlh));
- }
-
- return 0;
-@@ -925,7 +925,7 @@ int nla_nest_end(struct nl_msg *msg, struct nlattr *start)
- {
- size_t pad, len;
-
-- len = (void *) nlmsg_tail(msg->nm_nlh) - (void *) start;
-+ len = (char *) nlmsg_tail(msg->nm_nlh) - (char *) start;
-
- if (len == NLA_HDRLEN || len > USHRT_MAX) {
- /*
-@@ -974,7 +974,7 @@ void nla_nest_cancel(struct nl_msg *msg, const struct nlattr *attr)
- {
- ssize_t len;
-
-- len = (void *) nlmsg_tail(msg->nm_nlh) - (void *) attr;
-+ len = (char *) nlmsg_tail(msg->nm_nlh) - (char *) attr;
- if (len < 0)
- BUG();
- else if (len > 0) {
-diff --git a/lib/data.c b/lib/data.c
-index 83ecd03..0123170 100644
---- a/lib/data.c
-+++ b/lib/data.c
-@@ -111,7 +111,7 @@ struct nl_data *nl_data_clone(const struct nl_data *src)
- int nl_data_append(struct nl_data *data, const void *buf, size_t size)
- {
- if (size > 0) {
-- void *d_data = realloc(data->d_data, data->d_size + size);
-+ char *d_data = realloc(data->d_data, data->d_size + size);
- if (!d_data)
- return -NLE_NOMEM;
-
-diff --git a/lib/genl/genl.c b/lib/genl/genl.c
-index a663ad8..30e8c8b 100644
---- a/lib/genl/genl.c
-+++ b/lib/genl/genl.c
-@@ -259,7 +259,7 @@ void *genlmsg_user_hdr(const struct genlmsghdr *gnlh)
- */
- void *genlmsg_user_data(const struct genlmsghdr *gnlh, const int hdrlen)
- {
-- return genlmsg_user_hdr(gnlh) + NLMSG_ALIGN(hdrlen);
-+ return (char *) genlmsg_user_hdr(gnlh) + NLMSG_ALIGN(hdrlen);
- }
-
- /**
-@@ -363,7 +363,7 @@ void *genlmsg_put(struct nl_msg *msg, uint32_t port, uint32_t seq, int family,
- NL_DBG(2, "msg %p: Added generic netlink header cmd=%d version=%d\n",
- msg, cmd, version);
-
-- return nlmsg_data(nlh) + GENL_HDRLEN;
-+ return (char *) nlmsg_data(nlh) + GENL_HDRLEN;
- }
-
- /** @} */
-diff --git a/lib/msg.c b/lib/msg.c
-index 3e27d4e..0ce5887 100644
---- a/lib/msg.c
-+++ b/lib/msg.c
-@@ -407,7 +407,7 @@ struct nl_msg *nlmsg_convert(struct nlmsghdr *hdr)
- */
- void *nlmsg_reserve(struct nl_msg *n, size_t len, int pad)
- {
-- void *buf = n->nm_nlh;
-+ char *buf = (char *) n->nm_nlh;
- size_t nlmsg_len = n->nm_nlh->nlmsg_len;
- size_t tlen;
-
-@@ -835,7 +835,7 @@ static void print_genl_hdr(FILE *ofd, void *start)
- static void *print_genl_msg(struct nl_msg *msg, FILE *ofd, struct nlmsghdr *hdr,
- struct nl_cache_ops *ops, int *payloadlen)
- {
-- void *data = nlmsg_data(hdr);
-+ char *data = nlmsg_data(hdr);
-
- if (*payloadlen < GENL_HDRLEN)
- return data;
-@@ -898,7 +898,7 @@ static void dump_attrs(FILE *ofd, struct nlattr *attrs, int attrlen,
- prefix_line(ofd, prefix);
- fprintf(ofd, " [PADDING] %d octets\n",
- padlen);
-- dump_hex(ofd, nla_data(nla) + alen,
-+ dump_hex(ofd, (char *) nla_data(nla) + alen,
- padlen, prefix);
- }
- }
-diff --git a/lib/object.c b/lib/object.c
-index 64e3b07..aeb4307 100644
---- a/lib/object.c
-+++ b/lib/object.c
-@@ -131,7 +131,7 @@ struct nl_object *nl_object_clone(struct nl_object *obj)
- new->ce_mask = obj->ce_mask;
-
- if (size)
-- memcpy((void *)new + doff, (void *)obj + doff, size);
-+ memcpy((char *)new + doff, (char *)obj + doff, size);
-
- if (ops->oo_clone) {
- if (ops->oo_clone(new, obj) < 0) {
---
-2.22.0
-
diff --git a/pkg/libnl/patch/0006-Avoid-statement-expression-in-nl_container_of.patch b/pkg/libnl/patch/0002-Avoid-statement-expression-in-nl_container_of.patch
index c14b3430..f0a7aea3 100644
--- a/pkg/libnl/patch/0006-Avoid-statement-expression-in-nl_container_of.patch
+++ b/pkg/libnl/patch/0002-Avoid-statement-expression-in-nl_container_of.patch
@@ -1,4 +1,4 @@
-From caff6ac158a66ecf0688ee00a58e30e67971125c Mon Sep 17 00:00:00 2001
+From e9b9e271c57d3d3129fa87c8866e91daeffe8144 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 11 Aug 2019 05:14:48 +0000
Subject: [PATCH] Avoid statement expression in nl_container_of
@@ -8,7 +8,7 @@ Subject: [PATCH] Avoid statement expression in nl_container_of
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/include/netlink/list.h b/include/netlink/list.h
-index fcfb826..a5ce74f 100644
+index 2f20634..f116126 100644
--- a/include/netlink/list.h
+++ b/include/netlink/list.h
@@ -59,9 +59,8 @@ static inline int nl_list_empty(struct nl_list_head *head)
@@ -16,7 +16,7 @@ index fcfb826..a5ce74f 100644
}
-#define nl_container_of(ptr, type, member) ({ \
-- const typeof( ((type *)0)->member ) *__mptr = (ptr); \
+- const __typeof__( ((type *)0)->member ) *__mptr = (ptr);\
- (type *)( (char *)__mptr - (offsetof(type, member)));})
+#define nl_container_of(ptr, type, member) ( \
+ (type *)( (char *)(ptr) - (offsetof(type, member))))
@@ -24,5 +24,5 @@ index fcfb826..a5ce74f 100644
#define nl_list_entry(ptr, type, member) \
nl_container_of(ptr, type, member)
--
-2.22.0
+2.23.0
diff --git a/pkg/libnl/patch/0008-Avoid-initialization-of-flexible-array-member.patch b/pkg/libnl/patch/0003-Avoid-initialization-of-flexible-array-member.patch
index 3830b5e8..8390197b 100644
--- a/pkg/libnl/patch/0008-Avoid-initialization-of-flexible-array-member.patch
+++ b/pkg/libnl/patch/0003-Avoid-initialization-of-flexible-array-member.patch
@@ -1,4 +1,4 @@
-From 90733be9145ba1d977ec23f21eae45b062dc8bcf Mon Sep 17 00:00:00 2001
+From d1f59de10a2fbce42735b3a1938ecd4d60c8e205 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 11 Aug 2019 21:55:54 +0000
Subject: [PATCH] Avoid initialization of flexible array member
@@ -22,10 +22,10 @@ index c684e79..82be310 100644
/** @} */
diff --git a/include/netlink-private/netlink.h b/include/netlink-private/netlink.h
-index d9a3597..531940f 100644
+index fca3133..1148cec 100644
--- a/include/netlink-private/netlink.h
+++ b/include/netlink-private/netlink.h
-@@ -201,7 +201,7 @@ static inline const char *nl_cache_name(struct nl_cache *cache)
+@@ -200,7 +200,7 @@ static inline const char *nl_cache_name(struct nl_cache *cache)
}
#define GENL_FAMILY(id, name) \
@@ -35,5 +35,5 @@ index d9a3597..531940f 100644
END_OF_MSGTYPES_LIST, \
}
--
-2.22.0
+2.23.0
diff --git a/pkg/libnl/patch/0003-Don-t-return-expression-in-function-returning-void.patch b/pkg/libnl/patch/0003-Don-t-return-expression-in-function-returning-void.patch
deleted file mode 100644
index 997179a1..00000000
--- a/pkg/libnl/patch/0003-Don-t-return-expression-in-function-returning-void.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From befefcc3c3fef5d7d15713ae9dfb82108c331d56 Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Sun, 11 Aug 2019 04:50:32 +0000
-Subject: [PATCH] Don't return expression in function returning void
-
----
- lib/cache.c | 2 +-
- lib/object.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/lib/cache.c b/lib/cache.c
-index 427f5df..badf91c 100644
---- a/lib/cache.c
-+++ b/lib/cache.c
-@@ -421,7 +421,7 @@ void nl_cache_free(struct nl_cache *cache)
-
- void nl_cache_put(struct nl_cache *cache)
- {
-- return nl_cache_free(cache);
-+ nl_cache_free(cache);
- }
-
- /** @} */
-diff --git a/lib/object.c b/lib/object.c
-index aeb4307..f0c73da 100644
---- a/lib/object.c
-+++ b/lib/object.c
-@@ -300,7 +300,7 @@ void nl_object_dump_buf(struct nl_object *obj, char *buf, size_t len)
- .dp_buflen = len,
- };
-
-- return nl_object_dump(obj, &dp);
-+ nl_object_dump(obj, &dp);
- }
-
- /**
---
-2.22.0
-
diff --git a/pkg/libnl/patch/0009-Avoid-statement-expression-in-ATTR_DIFF-macro.patch b/pkg/libnl/patch/0004-Avoid-statement-expression-in-ATTR_DIFF-macro.patch
index 614d662a..135c6ff5 100644
--- a/pkg/libnl/patch/0009-Avoid-statement-expression-in-ATTR_DIFF-macro.patch
+++ b/pkg/libnl/patch/0004-Avoid-statement-expression-in-ATTR_DIFF-macro.patch
@@ -1,4 +1,4 @@
-From 84eb9f312cc183e98d97805eda9d5e5bef7542b6 Mon Sep 17 00:00:00 2001
+From e56f5df0379c7dc70f6ce61a31167185daa51cae Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 11 Aug 2019 21:57:03 +0000
Subject: [PATCH] Avoid statement expression in ATTR_DIFF macro
@@ -24,5 +24,5 @@ index 517e672..269cd4b 100644
/**
* Object Operations
--
-2.22.0
+2.23.0
diff --git a/pkg/libnl/patch/0004-Don-t-omit-second-operand-to-operator.patch b/pkg/libnl/patch/0004-Don-t-omit-second-operand-to-operator.patch
deleted file mode 100644
index 26ab7366..00000000
--- a/pkg/libnl/patch/0004-Don-t-omit-second-operand-to-operator.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From aea1d02c2700adec3a5c67cfa2d74bb812d95725 Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Sun, 11 Aug 2019 04:57:33 +0000
-Subject: [PATCH] Don't omit second operand to `?` operator
-
----
- lib/nl.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/nl.c b/lib/nl.c
-index 1b4355b..9065389 100644
---- a/lib/nl.c
-+++ b/lib/nl.c
-@@ -681,7 +681,7 @@ int nl_recv(struct nl_sock *sk, struct sockaddr_nl *nla,
- if (page_size == 0)
- page_size = getpagesize() * 4;
-
-- iov.iov_len = sk->s_bufsize ? : page_size;
-+ iov.iov_len = sk->s_bufsize ? sk->s_bufsize : page_size;
- iov.iov_base = malloc(iov.iov_len);
-
- if (!iov.iov_base) {
---
-2.22.0
-
diff --git a/pkg/libnl/patch/0005-Remove-_nl_auto-helpers.patch b/pkg/libnl/patch/0005-Remove-_nl_auto-helpers.patch
new file mode 100644
index 00000000..f29a610c
--- /dev/null
+++ b/pkg/libnl/patch/0005-Remove-_nl_auto-helpers.patch
@@ -0,0 +1,238 @@
+From 558f898c413bd46423c6b07073422fc6fc18769c Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Fri, 4 Oct 2019 18:13:36 -0700
+Subject: [PATCH] Remove _nl_auto helpers
+
+These use non-standard __attribute__((cleanup)) and statement
+expressions.
+---
+ include/netlink-private/utils.h | 49 ---------------------------------
+ lib/genl/mngt.c | 10 +++++--
+ lib/xfrm/sa.c | 24 ++++++++--------
+ 3 files changed, 19 insertions(+), 64 deletions(-)
+
+diff --git a/include/netlink-private/utils.h b/include/netlink-private/utils.h
+index f33a2f8..1456797 100644
+--- a/include/netlink-private/utils.h
++++ b/include/netlink-private/utils.h
+@@ -67,7 +67,6 @@
+ /*****************************************************************************/
+
+ #define _nl_unused __attribute__ ((__unused__))
+-#define _nl_auto(fcn) __attribute__ ((__cleanup__(fcn)))
+
+ /*****************************************************************************/
+
+@@ -83,18 +82,6 @@
+
+ /*****************************************************************************/
+
+-#define _NL_AUTO_DEFINE_FCN_VOID0(CastType, name, func) \
+-static inline void name (void *v) \
+-{ \
+- if (*((CastType *) v)) \
+- func (*((CastType *) v)); \
+-}
+-
+-#define _nl_auto_free _nl_auto(_nl_auto_free_fcn)
+-_NL_AUTO_DEFINE_FCN_VOID0 (void *, _nl_auto_free_fcn, free)
+-
+-/*****************************************************************************/
+-
+ extern const char *nl_strerror_l(int err);
+
+ /*****************************************************************************/
+@@ -106,42 +93,6 @@ extern const char *nl_strerror_l(int err);
+
+ /*****************************************************************************/
+
+-#define _nl_clear_pointer(pp, destroy) \
+- ({ \
+- __typeof__ (*(pp)) *_pp = (pp); \
+- __typeof__ (*_pp) _p; \
+- int _changed = 0; \
+- \
+- if ( _pp \
+- && (_p = *_pp)) { \
+- _nl_unused const void *const _p_check_is_pointer = _p; \
+- \
+- *_pp = NULL; \
+- \
+- (destroy) (_p); \
+- \
+- _changed = 1; \
+- } \
+- _changed; \
+- })
+-
+-#define _nl_clear_free(pp) _nl_clear_pointer (pp, free)
+-
+-#define _nl_steal_pointer(pp) \
+- ({ \
+- __typeof__ (*(pp)) *const _pp = (pp); \
+- __typeof__ (*_pp) _p = NULL; \
+- \
+- if ( _pp \
+- && (_p = *_pp)) { \
+- *_pp = NULL; \
+- } \
+- \
+- _p; \
+- })
+-
+-/*****************************************************************************/
+-
+ #define _nl_malloc_maybe_a(alloca_maxlen, bytes, to_free) \
+ ({ \
+ const size_t _bytes = (bytes); \
+diff --git a/lib/genl/mngt.c b/lib/genl/mngt.c
+index 28326cd..ff50e1d 100644
+--- a/lib/genl/mngt.c
++++ b/lib/genl/mngt.c
+@@ -50,7 +50,7 @@ static struct genl_cmd *lookup_cmd(struct genl_ops *ops, int cmd_id)
+ static int cmd_msg_parser(struct sockaddr_nl *who, struct nlmsghdr *nlh,
+ struct genl_ops *ops, struct nl_cache_ops *cache_ops, void *arg)
+ {
+- _nl_auto_free struct nlattr **tb_free = NULL;
++ struct nlattr **tb_free = NULL;
+ int err;
+ struct genlmsghdr *ghdr;
+ struct genl_cmd *cmd;
+@@ -74,7 +74,7 @@ static int cmd_msg_parser(struct sockaddr_nl *who, struct nlmsghdr *nlh,
+ cmd->c_maxattr,
+ cmd->c_attr_policy);
+ if (err < 0)
+- return err;
++ goto out;
+
+ {
+ struct genl_info info = {
+@@ -85,8 +85,12 @@ static int cmd_msg_parser(struct sockaddr_nl *who, struct nlmsghdr *nlh,
+ .attrs = tb,
+ };
+
+- return cmd->c_msg_parser(cache_ops, cmd, &info, arg);
++ err = cmd->c_msg_parser(cache_ops, cmd, &info, arg);
+ }
++
++out:
++ free(tb_free);
++ return err;
+ }
+
+ static int genl_msg_parser(struct nl_cache_ops *ops, struct sockaddr_nl *who,
+diff --git a/lib/xfrm/sa.c b/lib/xfrm/sa.c
+index 48265ba..14bf298 100644
+--- a/lib/xfrm/sa.c
++++ b/lib/xfrm/sa.c
+@@ -1683,7 +1683,7 @@ int xfrmnl_sa_get_aead_params (struct xfrmnl_sa* sa, char* alg_name, unsigned in
+
+ int xfrmnl_sa_set_aead_params (struct xfrmnl_sa* sa, const char* alg_name, unsigned int key_len, unsigned int icv_len, const char* key)
+ {
+- _nl_auto_free struct xfrmnl_algo_aead *b = NULL;
++ struct xfrmnl_algo_aead *b = NULL;
+ size_t keysize = sizeof (uint8_t) * ((key_len + 7)/8);
+ uint32_t newlen = sizeof (struct xfrmnl_algo_aead) + keysize;
+
+@@ -1699,7 +1699,7 @@ int xfrmnl_sa_set_aead_params (struct xfrmnl_sa* sa, const char* alg_name, unsig
+ memcpy (b->alg_key, key, keysize);
+
+ free (sa->aead);
+- sa->aead = _nl_steal_pointer (&b);
++ sa->aead = b;
+ sa->ce_mask |= XFRM_SA_ATTR_ALG_AEAD;
+ return 0;
+ }
+@@ -1741,7 +1741,7 @@ int xfrmnl_sa_get_auth_params (struct xfrmnl_sa* sa, char* alg_name, unsigned in
+
+ int xfrmnl_sa_set_auth_params (struct xfrmnl_sa* sa, const char* alg_name, unsigned int key_len, unsigned int trunc_len, const char* key)
+ {
+- _nl_auto_free struct xfrmnl_algo_auth *b = NULL;
++ struct xfrmnl_algo_auth *b = NULL;
+ size_t keysize = sizeof (uint8_t) * ((key_len + 7)/8);
+ uint32_t newlen = sizeof (struct xfrmnl_algo_auth) + keysize;
+
+@@ -1756,7 +1756,7 @@ int xfrmnl_sa_set_auth_params (struct xfrmnl_sa* sa, const char* alg_name, unsig
+ memcpy (b->alg_key, key, keysize);
+
+ free (sa->auth);
+- sa->auth = _nl_steal_pointer (&b);
++ sa->auth = b;
+ sa->ce_mask |= XFRM_SA_ATTR_ALG_AUTH;
+ return 0;
+ }
+@@ -1795,7 +1795,7 @@ int xfrmnl_sa_get_crypto_params (struct xfrmnl_sa* sa, char* alg_name, unsigned
+
+ int xfrmnl_sa_set_crypto_params (struct xfrmnl_sa* sa, const char* alg_name, unsigned int key_len, const char* key)
+ {
+- _nl_auto_free struct xfrmnl_algo *b = NULL;
++ struct xfrmnl_algo *b = NULL;
+ size_t keysize = sizeof (uint8_t) * ((key_len + 7)/8);
+ uint32_t newlen = sizeof (struct xfrmnl_algo) + keysize;
+
+@@ -1809,7 +1809,7 @@ int xfrmnl_sa_set_crypto_params (struct xfrmnl_sa* sa, const char* alg_name, uns
+ memcpy (b->alg_key, key, keysize);
+
+ free(sa->crypt);
+- sa->crypt = _nl_steal_pointer(&b);
++ sa->crypt = b;
+ sa->ce_mask |= XFRM_SA_ATTR_ALG_CRYPT;
+ return 0;
+ }
+@@ -1848,7 +1848,7 @@ int xfrmnl_sa_get_comp_params (struct xfrmnl_sa* sa, char* alg_name, unsigned in
+
+ int xfrmnl_sa_set_comp_params (struct xfrmnl_sa* sa, const char* alg_name, unsigned int key_len, const char* key)
+ {
+- _nl_auto_free struct xfrmnl_algo *b = NULL;
++ struct xfrmnl_algo *b = NULL;
+ size_t keysize = sizeof (uint8_t) * ((key_len + 7)/8);
+ uint32_t newlen = sizeof (struct xfrmnl_algo) + keysize;
+
+@@ -1862,7 +1862,7 @@ int xfrmnl_sa_set_comp_params (struct xfrmnl_sa* sa, const char* alg_name, unsig
+ memcpy (b->alg_key, key, keysize);
+
+ free(sa->comp);
+- sa->comp = _nl_steal_pointer(&b);
++ sa->comp = b;
+ sa->ce_mask |= XFRM_SA_ATTR_ALG_COMP;
+ return 0;
+ }
+@@ -2023,7 +2023,7 @@ int xfrmnl_sa_get_sec_ctx (struct xfrmnl_sa* sa, unsigned int* doi, unsigned int
+ int xfrmnl_sa_set_sec_ctx (struct xfrmnl_sa* sa, unsigned int doi, unsigned int alg, unsigned int len,
+ unsigned int sid, const char* ctx_str)
+ {
+- _nl_auto_free struct xfrmnl_user_sec_ctx *b = NULL;
++ struct xfrmnl_user_sec_ctx *b = NULL;
+
+ if (!(b = calloc(1, sizeof (struct xfrmnl_user_sec_ctx) + 1 + len)))
+ return -1;
+@@ -2037,7 +2037,7 @@ int xfrmnl_sa_set_sec_ctx (struct xfrmnl_sa* sa, unsigned int doi, unsigned int
+ b->ctx[len] = '\0';
+
+ free(sa->sec_ctx);
+- sa->sec_ctx = _nl_steal_pointer(&b);
++ sa->sec_ctx = b;
+ sa->ce_mask |= XFRM_SA_ATTR_SECCTX;
+ return 0;
+ }
+@@ -2136,7 +2136,7 @@ int xfrmnl_sa_set_replay_state_esn (struct xfrmnl_sa* sa, unsigned int oseq, uns
+ unsigned int oseq_hi, unsigned int seq_hi, unsigned int replay_window,
+ unsigned int bmp_len, unsigned int* bmp)
+ {
+- _nl_auto_free struct xfrmnl_replay_state_esn *b = NULL;
++ struct xfrmnl_replay_state_esn *b = NULL;
+
+ if (!(b = calloc (1, sizeof (struct xfrmnl_replay_state_esn) + (sizeof (uint32_t) * bmp_len))))
+ return -1;
+@@ -2150,7 +2150,7 @@ int xfrmnl_sa_set_replay_state_esn (struct xfrmnl_sa* sa, unsigned int oseq, uns
+ memcpy (b->bmp, bmp, bmp_len * sizeof (uint32_t));
+
+ free(sa->replay_state_esn);
+- sa->replay_state_esn = _nl_steal_pointer(&b);
++ sa->replay_state_esn = b;
+ sa->ce_mask |= XFRM_SA_ATTR_REPLAY_STATE;
+ return 0;
+ }
+--
+2.23.0
+
diff --git a/pkg/libnl/patch/0007-Use-__typeof__-instead-of-typeof.patch b/pkg/libnl/patch/0007-Use-__typeof__-instead-of-typeof.patch
deleted file mode 100644
index d4cdc60d..00000000
--- a/pkg/libnl/patch/0007-Use-__typeof__-instead-of-typeof.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 334b5121a678ef1ec200c5b83855b46f6d238756 Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Sun, 11 Aug 2019 05:15:37 +0000
-Subject: [PATCH] Use __typeof__ instead of typeof
-
----
- include/netlink/list.h | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/include/netlink/list.h b/include/netlink/list.h
-index a5ce74f..f116126 100644
---- a/include/netlink/list.h
-+++ b/include/netlink/list.h
-@@ -78,15 +78,15 @@ static inline int nl_list_empty(struct nl_list_head *head)
- nl_list_entry((head)->next, type, member)
-
- #define nl_list_for_each_entry(pos, head, member) \
-- for (pos = nl_list_entry((head)->next, typeof(*pos), member); \
-+ for (pos = nl_list_entry((head)->next, __typeof__(*pos), member); \
- &(pos)->member != (head); \
-- (pos) = nl_list_entry((pos)->member.next, typeof(*(pos)), member))
-+ (pos) = nl_list_entry((pos)->member.next, __typeof__(*(pos)), member))
-
- #define nl_list_for_each_entry_safe(pos, n, head, member) \
-- for (pos = nl_list_entry((head)->next, typeof(*pos), member), \
-- n = nl_list_entry(pos->member.next, typeof(*pos), member); \
-+ for (pos = nl_list_entry((head)->next, __typeof__(*pos), member), \
-+ n = nl_list_entry(pos->member.next, __typeof__(*pos), member); \
- &(pos)->member != (head); \
-- pos = n, n = nl_list_entry(n->member.next, typeof(*n), member))
-+ pos = n, n = nl_list_entry(n->member.next, __typeof__(*n), member))
-
- #define nl_init_list_head(head) \
- do { (head)->next = (head); (head)->prev = (head); } while (0)
---
-2.22.0
-
diff --git a/pkg/libnl/patch/0010-Fallback-to-alloca-when-VLAs-aren-t-available.patch b/pkg/libnl/patch/0010-Fallback-to-alloca-when-VLAs-aren-t-available.patch
deleted file mode 100644
index cd5f43f5..00000000
--- a/pkg/libnl/patch/0010-Fallback-to-alloca-when-VLAs-aren-t-available.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 672da355b5beb5bc2729f968318f87eb7795572b Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Mon, 12 Aug 2019 02:22:15 +0000
-Subject: [PATCH] Fallback to alloca when VLAs aren't available
-
----
- lib/genl/mngt.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/lib/genl/mngt.c b/lib/genl/mngt.c
-index ebfe85e..dda661f 100644
---- a/lib/genl/mngt.c
-+++ b/lib/genl/mngt.c
-@@ -61,7 +61,11 @@ static int cmd_msg_parser(struct sockaddr_nl *who, struct nlmsghdr *nlh,
- if (cmd->c_msg_parser == NULL)
- err = -NLE_OPNOTSUPP;
- else {
-+#ifndef __STDC_NO_VLA__
- struct nlattr *tb[cmd->c_maxattr + 1];
-+#else
-+ struct nlattr **tb = alloca((cmd->c_maxattr + 1) * sizeof(tb[0]));
-+#endif
- struct genl_info info = {
- .who = who,
- .nlh = nlh,
---
-2.22.0
-
diff --git a/pkg/libnl/src b/pkg/libnl/src
-Subproject 3fe3454b0228a6c9729ce9ffebf62bda85fd87a
+Subproject 7b167ef85f6eb4d7faca349302478b2dc121e30
diff --git a/pkg/libnl/ver b/pkg/libnl/ver
index d2f721c4..142adba1 100644
--- a/pkg/libnl/ver
+++ b/pkg/libnl/ver
@@ -1 +1 @@
-3.4.0 r1
+3.5.0 r0