Wind River Support Network

HomeOther DownloadsPatch to iptables to fix a "bad file descriptor" error. (for Wind River Linux 1.4)
Optional Type: Patch

Patch to iptables to fix a "bad file descriptor" error. (for Wind River Linux 1.4)

Released: Aug 5, 2007     Updated: Aug 5, 2007

Description

Problem description
--------------------
Iptables userspace utility needs to transfer information to/from kernel
in structures defined in kernel headers.

Two versions of iptables are available:
iptables_32 for 32-bit kernel
iptables_64 for 64-bit kernel.

When compiling iptalbes_64, two defines "-DIPT_MIN_ALIGN=8" "-DKERNEL_64_USERSPACE_32" are added to gcc, which can affect some structures in iptables source tree, but can not affect those in public headers.

As a result, most parts of iptables_64 are still compiled for 32-bit.

This patch fixes that problem.

Steps to reproduce the problem:
-------------------------------
* root@slot04:~/iptables_issue# iptables_32 -L -n
iptables v1.3.4: can't initialize iptables table filter': Bad file descriptor
Perhaps iptables or your kernel needs to be upgraded.
* root@slot04:~/iptables_issue# iptables_64 -L -n
iptables v1.3.4: can't initialize iptables table
filter': Bad file descriptor
Perhaps iptables or your kernel needs to be upgraded.
IDENTIFIER = WIND00097110-PNELE14


Product Version

Linux Platforms 1.x

Downloads


Installation Notes

Installation Notes

Installation Instructions
-------------------------

1) This is a source only patch.
2) Copy the attached zip file to the updates directory of the installation and unzip it.
3) Run ./setup_linux
4) Configure a project;
5) 'make -C build iptables'; (it is a source only patch)
6) 'make fs';
7) Boot hardware with new rootfs

Note:
-----

1) Two versions of iptables commands exist, the reason is because the iptables command need to exchange data to or from kernel space, use a predefined data structure.

2) In this version of wrlinux, when kernel is in 64-bit mode, we should use iptables compiled for 64-bit mode (iptables_64), when kernel is in 32-bit mode, iptables_32 should be used.


Live chat
Online