iptables: fix a segfault when iptables tries to use modprobe, force it to use insmod
authorJo-Philipp Wich <jow@openwrt.org>
Wed, 24 Feb 2010 01:59:32 +0000 (01:59 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Wed, 24 Feb 2010 01:59:32 +0000 (01:59 +0000)
SVN-Revision: 19827

package/iptables/Makefile
package/iptables/patches/020-iptables-force-modprobe-util.patch [new file with mode: 0644]

index 20e4b315caa5f915e230716f2b07453439040c41..68ccc76282ac422ea09761878a152c41443ff33d 100644 (file)
@@ -254,6 +254,10 @@ TARGET_CPPFLAGS := \
        -I$(LINUX_DIR)/arch/$(LINUX_KARCH)/include \
        $(TARGET_CPPFLAGS)
 
+TARGET_CFLAGS := \
+       $(TARGET_CFLAGS) \
+       -DFORCE_MODPROBE_PROGRAM="\\\"/sbin/insmod\\\""
+
 CONFIGURE_ARGS += \
        --enable-shared \
        --enable-devel \
diff --git a/package/iptables/patches/020-iptables-force-modprobe-util.patch b/package/iptables/patches/020-iptables-force-modprobe-util.patch
new file mode 100644 (file)
index 0000000..32c9fcd
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/xtables.c
++++ b/xtables.c
+@@ -285,6 +285,7 @@ void *xtables_realloc(void *ptr, size_t 
+ static char *get_modprobe(void)
+ {
++#ifndef FORCE_MODPROBE_PROGRAM
+       int procfile;
+       char *ret;
+@@ -309,6 +310,9 @@ static char *get_modprobe(void)
+       free(ret);
+       close(procfile);
+       return NULL;
++#else
++      return strdup(FORCE_MODPROBE_PROGRAM);
++#endif
+ }
+ int xtables_insmod(const char *modname, const char *modprobe, bool quiet)