From 66a97018a31eed416c6a25d051ea172e4d65be1b Mon Sep 17 00:00:00 2001 From: Duncan Roe Date: Tue, 15 May 2018 08:26:43 +1000 Subject: ebtables: Fix build errors and warnings Since commit b1cdae87f25021eb835872d86d6e7206bd421c3f, make fails thusly: > libebtc.c: In function 'ebt_reinit_extensions': > libebtc.c:275:11: error: 'union ' has no member named 'revision' > m->m->u.revision = m->revision; > ^ > libebtc.c: In function 'ebt_check_rule_exists': > libebtc.c:555:21: error: 'union ' has no member named 'revision' > m_l2->m->u.revision != m->m->u.revision)) { > ^ > libebtc.c:555:41: error: 'union ' has no member named 'revision' > m_l2->m->u.revision != m->m->u.revision)) { > ^ > libebtc.c: In function 'ebt_register_match': > libebtc.c:1215:9: error: 'union ' has no member named 'revision' > m->m->u.revision = m->revision; > ^ The cause of this failure is that the commit updated include/ebtables.h but libebtc.c uses include/linux/netfilter_bridge/ebtables.h via include/ebtables_u.h (gcc -E -C verifies this). The 2 versions of ebtables.h looked to me to be otherwise close enough, so amended ebtables_u.h to use the newer one. Makefile insists on being warning-free, so cleared up warnings. Apart from unused variables, there was also the issue that the diagnostic macro ebt_print_error2 *returns* (i.e. makes its caller return) and returns -1. This is unsuitable for use in functions which do not return a value, so introduced ebt_print_error3 to do this. Signed-off-by: Duncan Roe Signed-off-by: Florian Westphal --- include/ebtables_u.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include/ebtables_u.h') diff --git a/include/ebtables_u.h b/include/ebtables_u.h index 4824a14..7adc5a2 100644 --- a/include/ebtables_u.h +++ b/include/ebtables_u.h @@ -25,7 +25,7 @@ #define EBTABLES_U_H #include #include -#include +#include #include #ifndef IPPROTO_SCTP @@ -338,6 +338,8 @@ _ch;}) #define ebt_print_error(format,args...) __ebt_print_error(format, ##args); #define ebt_print_error2(format, args...) do {__ebt_print_error(format, ##args); \ return -1;} while (0) +#define ebt_print_error3(format, args...) do {__ebt_print_error(format, ##args); \ + return;} while (0) #define ebt_check_option2(flags,mask) \ ({ebt_check_option(flags,mask); \ if (ebt_errormsg[0] != '\0') \ -- cgit v1.2.3