From 07a7441a1c0c09b63bb76fa48d540f8d37db0c6f Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 5 Mar 2021 20:33:15 +0100 Subject: [PATCH] socket-util: refuse "all" and "default" as valid ifnames Let's avoid collisions with special sysctls. --- src/basic/socket-util.c | 5 +++++ 1 file changed, 5 insertions(+) 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;