Package: ifupdown
Version: 0.8.35
Control: found -1 0.8.19

Hello,

The interfaces(5) man page states :

"Additionally, when "source-directory" is used, names of the files are checked to match the following regular expression: ^[a-zA-Z0-9_-]+$. In other words, the names must consist entirely of ASCII upper- and lower-case letters, ASCII digits, ASCII underscores, and ASCII minus-hyphens."

This is true in Jessie with ifupdown version 0.7.53.1. However, in Stretch and Buster, if{up,down,query} do not apply this check when processing a source-directory statement.


Steps to reproduce the issue :

/etc/network/interfaces :
==begin==
source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback
===end===

/etc/network/interfaces.d/#eth.1#~ :
==begin==
iface eth1 inet manual
===end===

# ifup -v eth1
ifup: parsing file /etc/network/interfaces.d/#eth.1~

ifup: configuring interface eth1=eth1 (inet)
(...)


'#eth.1~' is processed even though its name does not match the above regular expression.

FWIW NetworkManager seems to behave the same with "managed=false" in /etc/NetworkManager/NetworkManager.conf.

I do not know what is the intended behaviour, but at least the man page and the actual behaviour should match. The current man page may mislead a user in believing that it is possible to disable an interface file by renaming it with special characters.

Reply via email to