diff options
author | Lennart Poettering <lennart@poettering.net> | 2021-03-05 20:33:15 +0100 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-03-06 11:26:18 +0900 |
commit | 07a7441a1c0c09b63bb76fa48d540f8d37db0c6f (patch) | |
tree | 3e0a8df488f73a0b72fa5ce2b46b55c296bdbc59 /src/basic/socket-util.c | |
parent | 5d5b6442a24d4d771e9f82848c2d8f257f10958c (diff) | |
download | systemd-07a7441a1c0c09b63bb76fa48d540f8d37db0c6f.tar.gz |
socket-util: refuse "all" and "default" as valid ifnames
Let's avoid collisions with special sysctls.
Diffstat (limited to 'src/basic/socket-util.c')
-rw-r--r-- | src/basic/socket-util.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c index 8267988ad9..06387bdfd6 100644 --- a/src/basic/socket-util.c +++ b/src/basic/socket-util.c @@ -736,6 +736,11 @@ bool ifname_valid_full(const char *p, IfnameValidFlags flags) { if (dot_or_dot_dot(p)) return false; + /* Let's refuse "all" and "default" as interface name, to avoid collisions with the special sysctl + * directories /proc/sys/net/{ipv4,ipv6}/conf/{all,default} */ + if (STR_IN_SET(p, "all", "default")) + return false; + for (const char *t = p; *t; t++) { if ((unsigned char) *t >= 127U) return false; |