]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: accept colons in network interface names, normally used for alias interfaces...
authorpeoronoob <peoro.noob@gmail.com>
Tue, 24 Jan 2017 03:26:41 +0000 (04:26 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 24 Jan 2017 03:26:41 +0000 (22:26 -0500)
src/basic/socket-util.c
src/test/test-socket-util.c

index 77f81a60ba5b0f8865f10841037a1a4a0fb35f88..c882b8a12adb33fb47bb2d1615cde4f1f43c48a9 100644 (file)
@@ -887,7 +887,7 @@ bool ifname_valid(const char *p) {
                 if ((unsigned char) *p <= 32U)
                         return false;
 
-                if (*p == ':' || *p == '/')
+                if (*p == '/')
                         return false;
 
                 numeric = numeric && (*p >= '0' && *p <= '9');
index d80613dc8459a5d13bc9aa2cf74bed3cb6063827..e1f5fd508457c64ef2694b758e89050fcfe82a08 100644 (file)
@@ -30,6 +30,7 @@
 static void test_ifname_valid(void) {
         assert(ifname_valid("foo"));
         assert(ifname_valid("eth0"));
+        assert(ifname_valid("eth0:0"));
 
         assert(!ifname_valid("0"));
         assert(!ifname_valid("99"));
@@ -44,7 +45,7 @@ static void test_ifname_valid(void) {
         assert(!ifname_valid("."));
         assert(!ifname_valid(".."));
         assert(ifname_valid("foo.bar"));
-        assert(!ifname_valid("x:y"));
+        assert(ifname_valid("x:y"));
 
         assert(ifname_valid("xxxxxxxxxxxxxxx"));
         assert(!ifname_valid("xxxxxxxxxxxxxxxx"));