C++ does not like implicit casts of void pointers, make them explicit there. After adjusting similar cases in example source files, these are the only needed header adjustments needed to compile them with g++. Reported-by: Yaron Shragai Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=1156 Signed-off-by: Phil Sutter --- include/libmnl/libmnl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/libmnl/libmnl.h b/include/libmnl/libmnl.h index 9c032807097f7..2c18e50e6026d 100644 --- a/include/libmnl/libmnl.h +++ b/include/libmnl/libmnl.h @@ -146,12 +146,12 @@ extern bool mnl_attr_ok(const struct nlattr *attr, int len); extern struct nlattr *mnl_attr_next(const struct nlattr *attr); #define mnl_attr_for_each(attr, nlh, offset) \ - for ((attr) = mnl_nlmsg_get_payload_offset((nlh), (offset)); \ + for ((attr) = (struct nlattr *)mnl_nlmsg_get_payload_offset((nlh), (offset)); \ mnl_attr_ok((attr), (char *)mnl_nlmsg_get_payload_tail(nlh) - (char *)(attr)); \ (attr) = mnl_attr_next(attr)) #define mnl_attr_for_each_nested(attr, nest) \ - for ((attr) = mnl_attr_get_payload(nest); \ + for ((attr) = (struct nlattr *)mnl_attr_get_payload(nest); \ mnl_attr_ok((attr), (char *)mnl_attr_get_payload(nest) + mnl_attr_get_payload_len(nest) - (char *)(attr)); \ (attr) = mnl_attr_next(attr)) -- 2.54.0