ebtables: fix segmentation fault due to uninitialized extension data
authorJo-Philipp Wich <jo@mein.io>
Fri, 24 Jun 2016 13:04:27 +0000 (15:04 +0200)
committerJo-Philipp Wich <jo@mein.io>
Fri, 24 Jun 2016 13:59:36 +0000 (15:59 +0200)
commitcb7aa4b1fee688342950d02195b927962295514e
treedd0fc0e95f837109c01a822da5bb90875a6e7c5b
parentd4ede1c1189abff6f52887179878cb950a4e47a0
ebtables: fix segmentation fault due to uninitialized extension data

The ebtables code relies on the `-nostartfiles` linker argument to execute the
extension modules' `_init()` functions automatically which is not working
reliably across all supported targets and gcc versions.

Running an ebtables executable linked this way just crashes with a segmentation
fault at runtime on program startup, e.g. on ARM architectures.

In order to fix the issue ...
 - remove the use of the -nostartfiles linker flag
 - rename the init procedures to a generic name without implicit semantics
 - explicitely annotate those init procedures as constructors

The patch has been taken from the Alpine Linux distribution at
http://git.alpinelinux.org/cgit/aports/tree/main/ebtables/fix-extension-init.patch

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
package/network/utils/ebtables/Makefile
package/network/utils/ebtables/patches/200-fix-extension-init.patch [new file with mode: 0644]