summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* build: drop install -o/-g rootJan Engelhardt2018-06-281-12/+12
| | | | | | | | | | | | Calling /usr/bin/install with -o/-g will attempt to chown, and fail if unsuccessful, which makes an unprivileged install with DESTDIR a futile attempt always. Drop it, because /usr/bin/install chowns to the current running user *anyway*, which means when root calls `make install`, it will do the right thing as before. Signed-off-by: Florian Westphal <fw@strlen.de>
* extensions: ebt_string: take action if snprintf discards dataDuncan Roe2018-06-281-1/+3
| | | | | | | | | | | 56993546c805 ("extensions: fix build failure on fc28") eliminated a gcc warning that strncpy could make a string w/out a NUL terminator. snprintf guarantees NUL-termination (so fixes that possibility). But, snprintf may discard data to make room for the NUL. This patch errors straight away in that eventuality. Signed-off-by: Duncan Roe <duncan_roe@optusnet.com.au> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
* extensions: fix build failure on fc28Florian Westphal2018-06-061-1/+1
| | | | | | | | | make fails via: extensions/ebt_string.c: In function ‘parse’: extensions/ebt_string.c:171:3: error: ‘strncpy’ specified bound 16 equals destination size [-Werror=stringop-truncation] strncpy(info->algo, optarg, XT_STRING_MAX_ALGO_NAME_SIZE); Signed-off-by: Florian Westphal <fw@strlen.de>
* build: update ebtables.h from kernel and drop local unused copyJan Engelhardt2018-06-063-295/+20
| | | | | | | | | | | | Revert 66a97018a31eed416c6a25d051ea172e4d65be1b partly so as to use <linux/netfilter_bridge/ebtables.h> again and import a new ebtables.h from the kernel tree that has the "revision" field. With this, include/ebtables.h is (again) used by no source file, and so can be removed. Signed-off-by: Jan Engelhardt <jengelh@inai.de> Signed-off-by: Florian Westphal <fw@strlen.de>
* ebtables: Fix build errors and warningsDuncan Roe2018-05-152-15/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit b1cdae87f25021eb835872d86d6e7206bd421c3f, make fails thusly: > libebtc.c: In function 'ebt_reinit_extensions': > libebtc.c:275:11: error: 'union <anonymous>' 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 <anonymous>' has no member named 'revision' > m_l2->m->u.revision != m->m->u.revision)) { > ^ > libebtc.c:555:41: error: 'union <anonymous>' 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 <anonymous>' 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 <duncan_roe@optusnet.com.au> Signed-off-by: Florian Westphal <fw@strlen.de>
* include: Fix musl libc compatibilityBaruch Siach2018-05-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Conflicting definitions of struct ethhdr between the kernel and musl libc provides headers causes a build failure: In file included from .../usr/include/netinet/ether.h:8:0, from useful_functions.c:28: .../usr/include/netinet/if_ether.h:107:8: error: redefinition of ‘struct ethhdr’ struct ethhdr { ^~~~~~ In file included from include/linux/netfilter_bridge.h:8:0, from include/linux/netfilter_bridge/ebtables.h:17, from include/ebtables_u.h:27, from useful_functions.c:25: include/linux/if_ether.h:119:8: note: originally defined here struct ethhdr { ^~~~~~ Recent enough versions kernel headers allow the libc to suppress conflicting kernel definitions. Include the libc proivded netinet/ether.h before kernel headers to suppress the conflicting definition of struct ethhdr. Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
* extensions: Add string filter to ebtablesBernie Harris2018-04-276-5/+359
| | | | | | | | | | | | | | | | | | | | This patch is part of a proposal to add a string filter to ebtables, which would be similar to the string filter in iptables. Like iptables, the ebtables filter uses the xt_string module, however some modifications have been made for this to work correctly. Currently ebtables assumes that the revision number of all match modules is 0. The xt_string module doesn't register a match with revision 0 so the solution is to modify ebtables to allow extensions to specify a revision number, similar to iptables. This gets passed down to the kernel, which is then able to find the match module correctly. Signed-off-by: Bernie Harris <bernie.harris@alliedtelesis.co.nz> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
* ebt_ip: add support for matching IGMP typeMatthias Schiffer2018-04-112-14/+65
| | | | | | | | | | | | We already have ICMPv6 type/code matches (which can be used to distinguish different types of MLD packets). Add support for IPv4 IGMP matches in the same way. To reuse as much code as possible, the ICMP type/code handling functions are extended to allow passing a NULL code range. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
* ebt_ip: add support for matching ICMP type and codeMatthias Schiffer2018-04-111-2/+94
| | | | | | | | We already have ICMPv6 type/code matches. This adds support for IPv4 ICMP matches in the same way. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
* Move ICMP type handling functions from ebt_ip6 to useful_functions.cMatthias Schiffer2018-04-113-159/+174
| | | | | | | Allow using these functions for ebt_ip as well. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
* include: sync linux/netfilter_bridge/ebt_ip.h with kernelMatthias Schiffer2018-04-111-3/+13
| | | | | Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
* Fix locking if LOCKDIR does not existPhil Sutter2018-01-171-4/+10
| | | | | | | | | | | The previous conversion to using flock() missed a crucial bit of code which tries to create LOCKDIR once in case opening the lock failed - This patch reestablishes the old behaviour. Reported-by: Tangchen (UVP) <tang.chen@huawei.com> Fixes: 6a826591878db ("Use flock() for --concurrent option") Signed-off-by: Phil Sutter <phil@nwl.cc> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
* Use flock() for --concurrent optionPhil Sutter2017-10-242-52/+5
| | | | | | | | | | | | | | The previous locking mechanism was not atomic, hence it was possible that a killed ebtables process would leave the lock file in place which in turn made future ebtables processes wait indefinitely for the lock to become free. Fix this by using flock(). This also simplifies code quite a bit because there is no need for a custom signal handler or an __exit routine anymore. Signed-off-by: Phil Sutter <phil@nwl.cc> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
* ebtables: extensions: Constify option structGargi Sharma2017-03-2818-20/+20
| | | | | | | | | The struct of the type option is only used to initialise a field inside the ebt_u_watcher or ebt_u_target or ebt_u_match struct and is not modified anywhere. Signed-off-by: Gargi Sharma <gs051095@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
* ebtables: Allow RETURN target rules in user defined chainsAlin Năstac2015-10-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | During loop checking ebtables marks entries with '1 << NF_BR_NUMHOOKS' if they're called from a base chain rather than a user defined chain. This can be used by ebtables targets that can encode a special return value to bail out if e.g. RETURN is used from a base chain. Unfortunately, this is broken, since the '1 << NF_BR_NUMHOOKS' is also copied to called user-defined-chains (i.e., a user defined chain can no longer be distinguished from a base chain): root@OpenWrt:~# ebtables -N foo root@OpenWrt:~# ebtables -A OUTPUT -j foo root@OpenWrt:~# ebtables -A foo -j mark --mark-or 3 --mark-target RETURN --mark-target RETURN not allowed on base chain. This works if -A OUTPUT -j foo is omitted, but will still appear if we try to call foo from OUTPUT afterwards. After this patch we still reject '-A OUTPUT -j mark .. --mark-target RETURN'. Signed-off-by: Florian Westphal <fw@strlen.de>
* ethernetdb.h: Remove C++ specific compiler hint macro _THROWFelix Janda2015-05-211-6/+5
| | | | | | | Fixes compilation with musl libc Signed-off-by: Felix Janda <felix.janda@posteo.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
* extensions: Use stdint typesFelix Janda2015-05-212-7/+7
| | | | | Signed-off-by: Felix Janda <felix.janda@posteo.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
* Add kernel headers needed from v3.16Pedro Alvarez2015-03-0220-0/+860
| | | | | | | | | | | | | | Ebtables fails to compile with versions of the linux headers greater than v3.16 with this error: extensions/ebt_ulog.c:17:45: fatal error: linux/netfilter_bridge/ebt_ulog.h: No such file or directory #include <linux/netfilter_bridge/ebt_ulog.h> This patch adds netfilter_bridge headers for every supported extension, including filter.h and types.h, to avoid this problem and future problems with changes in the kernel headers. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
* don't print IPv6 mask if it's all ones (based on patch by Mariusz Mazur ↵Bart De Schuymer2014-04-143-2/+16
| | | | <mmazur at axeos.com>)
* remove ebtables-restore binary from repositoryBart De Schuymer2013-07-311-118/+0
|
* Add --noflush command line support for ebtables-restoreSanket Shah2013-07-311-4/+25
|
* workaround for kernel regression bug: IPv6 source/destination addresses are ↵Luis Fernando2013-07-031-0/+4
| | | | potentially not matched correctly
* add info about -Wl,-no-as-neededBart De Schuymer2013-07-031-0/+2
|
* fix compilation warningPetri Gynther2013-02-241-1/+1
|
* add RARP and update iana urlBart De Schuymer2012-07-031-4/+6
|
* bump release and update program dateebtables-2.0.10-4Bart De Schuymer2011-12-151-2/+2
|
* changelog for 2.0.10-4Bart De Schuymer2011-12-151-0/+3
|
* bugfix: setting rule in first built-in chain caused setting all counters to ↵Bart De Schuymer2011-12-151-1/+1
| | | | zero (thanks to James Sinclair)
* typoBart De Schuymer2011-12-041-1/+1
|
* add changelog for v 2.0.10-3Bart De Schuymer2011-12-041-0/+3
|
* bump versionBart De Schuymer2011-12-041-1/+1
|
* fix rule counter bug (reported by James Sinclair): possible wrong ↵Bart De Schuymer2011-12-041-0/+1
| | | | initialization of counters
* add changelog for v2.0.10-2Bart De Schuymer2011-08-111-0/+6
|
* respect LDFLAGS (Peter Volkov)Bart De Schuymer2011-08-112-2/+2
|
* enable compiler optimizations, bump release numberBart De Schuymer2011-08-111-2/+2
|
* small changes to remove warnings when optimization is on (thanks to Peter ↵Bart De Schuymer2011-08-111-4/+4
| | | | Volkov)
* initialize some variables to get rid of warnings when compiling with ↵Bart De Schuymer2011-08-112-4/+4
| | | | optimization
* remove definition of __EXPORTED_HEADERS__: we use sanitized header files nowBart De Schuymer2011-08-112-2/+0
|
* add changelog for v2.0.10-1Bart De Schuymer2011-07-101-0/+15
|
* bump prog version, add LOCKDIR variable, add -Werror compile flagBart De Schuymer2011-07-101-10/+13
|
* remove compile warning, conditionally define LOCKFILEBart De Schuymer2011-07-101-0/+4
|
* define __EXPORTED_HEADERS__ to get access to kernel headersBart De Schuymer2011-07-101-1/+1
|
* add a reference to the lock fileBart De Schuymer2011-07-101-0/+1
|
* add info about the lock file compile time optionBart De Schuymer2011-07-101-3/+6
|
* remove irrelevant negative value check for the result of strtoul, found by ↵Bart De Schuymer2011-06-231-7/+0
| | | | Coverity static analysis (thanks to Jiri Popelka)
* free possible memory leak found by Coverity static analysis (Jiri Popelka)Bart De Schuymer2011-06-231-0/+2
|
* fix use-after-free issue found by Coverity static analysis (thanks to Jiri ↵Bart De Schuymer2011-06-231-2/+2
| | | | Popelka)
* fix possible issues found by Coverity static analysis (thanks to Jiri Popelka)Bart De Schuymer2011-06-231-3/+7
|
* Make the error message printed when an update of a table is rejected by the ↵Bart De Schuymer2011-06-191-3/+7
| | | | kernel
* export use_lockfdBart De Schuymer2011-06-191-0/+2
|