Debian Patches

Status for netplug/1.2.9.2-5

Patch Description Author Forwarded Bugs Origin Last update
10loglevel.patch Hide log-spamming message of ignored events. (Bug #544069) no
20quoting.patch Properly quote interface names. no
21ip-path.patch Do not call ip binary with hardcoded path

On new systems is ip binary in /usr/bin/ instead of /sbin/.

As netplug script explicitly sets $PATH with both /usr/bin/ and /sbin/
directories, do not call ip binary with hardcode path and instead call ip
binary without explicit path.

https://bugs.debian.org/1076624

diff --git a/scripts/netplug b/scripts/netplug
index e1d16d5505a3..87b37a840c67 100755
no
30path.patch Fix Debian specific path to init script in manual page. (Bug #513032)
===================================================================
no
40callback.patch Fix WIRELESS messages spamming syslog. (Bug #569226)

Some wireless network drivers send RTM_NEWLINK messages without a IFNAME, for
which netplug each time prints two error messages to syslog.
Search for "netlink wireless IFNAME" or for example see
http://lists.shmoo.com/pipermail/hostap/2004-March/006227.html

Change the debug level from ERROR to DEBUG and return success.
no
50iffup_stdownout.patch Fix handling IFF_UP set event in ST_DOWNANDOUT state

When during running of OUT script interface gets DOWN event (IFF_UP
cleared) it is put into ST_DOWNANDOUT state. And if still during running
OUT script it gets UP event (IFF_UP set) then netplugd crashes with error:
"unexpected state DOWNANDOUT for UP"

Per state diagram, when interface is in the ST_DOWNANDOUT state it has to
wait until OUT script finishes. After that is automatically put into
ST_PROBING state which brings it UP back (into ST_INACTIVE state).

So don't do anything when netplugd receives UP event in ST_DOWNANDOUT
state. Do not change state to ST_INACTIVE or something different because
these states do not expect any script running.

https://bugs.debian.org/652418

diff --git a/if_info.c b/if_info.c
index 2735d1585ea2..5556c1fcc40d 100644
no
51iffdown_stdownout.patch Fix handling IFF_UP clear event in ST_DOWNANDOUT state

When during running of OUT script interface gets DOWN event (IFF_UP
cleared) it is put into ST_DOWNANDOUT state. If still during running
OUT script it gets UP event (IFF_UP set) it stay in ST_DOWNANDOUT state
(with previous fix). And if still during running OUT script it gets another
DOWN event (IFF_UP cleared) then netplugd kills OUT script and put
interface into ST_PROBING state.

Per state diagram, this is a logic error as script killing should be used
for IN script. Fix this issue by ignoring DOWN even in ST_DOWNANDOUT state.

diff --git a/if_info.c b/if_info.c
index 5556c1fcc40d..d8b541e3c86d 100644
no
52iffup_stdown.patch Fix handling IFF_UP && !IFF_RUNNING in ST_DOWN state

When netplugd has interface in ST_DOWN state and interface has IFF_UP flag
set but not IFF_RUNNING flag then it is never moved into ST_INACTIVE state.
This is because of error in FALLTHROUGH logic. Fix it by manually changing
state to ST_INACTIVE after checking for IFF_UP flag and before FALLTHROUGH
to the ST_INACTIVE switch case.

diff --git a/if_info.c b/if_info.c
index d8b541e3c86d..01451629fc22 100644
no
53iffdown_stinning.patch Fix handling IFF_UP clear event in ST_INNING, ST_WAIT_IN and ST_ACTIVE states

IFF_UP change events are always handled before IFF_RUNNING change events.
Brining whole interface down (by clearing IFF_UP flag) breaks netplugd
state machine and cause that PROBING script is called instead of OUT
script. OUT script is never called from ST_ACTIVE state, even it should be
for proper cleanup.

Fix this issue by moving from ST_INNING/ST_WAIT_IN/ST_ACTIVE state into
ST_OUTING state and then immediately into ST_DOWNANDOUT state which is the
state for handling DOWN (IFF_UP clear) event.

Putting into ST_OUTING state cause that OUT script is properly called.

diff --git a/if_info.c b/if_info.c
index 01451629fc22..f719094b2daf 100644
no
54inscript_ret.patch Fix handling of return value of IN script

If IN script fails then do not put interface into ST_INSANE state.
ST_INSANE is currently not implemented and therefore it is out of the state
machine. So any interface which enters into ST_INSANE state cannot be used
anymore.

When IN script fails then print just warning message to the log and
continue as if IN script succeeded, so into ST_ACTIVE state. This is not
the correct behavior, but it is the best option for now, until state-change
rate limiting is implemented.

https://bugs.debian.org/879723
https://vyos.dev/T5686

diff --git a/if_info.c b/if_info.c
index f719094b2daf..ab17bb6919c1 100644
no
60custom-script.patch Allow to specify custom script file via new param '-s' (Bug #702495)
diff --git a/lib.c b/lib.c
index 5507daf..46de348 100644
no
70no-executable-stack.patch Fix code to work without executable stack

All local variables outside of the current function which are used by other
function are passed as pointers in function parameters. This change is
enough for avoiding need for executable stack for functions defined inside
another function.

Fixes error printed by kernel into dmesg every time when netplugd starts:
[ 86.661478] process '/sbin/netplugd' started with executable stack

diff --git a/if_info.c b/if_info.c
index bb114f5200f3..9fb4012bdf1d 100644
no

All known versions for source package 'netplug'

Links