network: accept colons in network interface names, normally used for alias interfaces (#5117)

This commit is contained in:
peoronoob 2017-01-24 04:26:41 +01:00 committed by Zbigniew Jędrzejewski-Szmek
parent 7e974e8530
commit a341dfe563
2 changed files with 3 additions and 2 deletions

View file

@ -887,7 +887,7 @@ bool ifname_valid(const char *p) {
if ((unsigned char) *p <= 32U) if ((unsigned char) *p <= 32U)
return false; return false;
if (*p == ':' || *p == '/') if (*p == '/')
return false; return false;
numeric = numeric && (*p >= '0' && *p <= '9'); numeric = numeric && (*p >= '0' && *p <= '9');

View file

@ -30,6 +30,7 @@
static void test_ifname_valid(void) { static void test_ifname_valid(void) {
assert(ifname_valid("foo")); assert(ifname_valid("foo"));
assert(ifname_valid("eth0")); assert(ifname_valid("eth0"));
assert(ifname_valid("eth0:0"));
assert(!ifname_valid("0")); assert(!ifname_valid("0"));
assert(!ifname_valid("99")); assert(!ifname_valid("99"));
@ -44,7 +45,7 @@ static void test_ifname_valid(void) {
assert(!ifname_valid(".")); assert(!ifname_valid("."));
assert(!ifname_valid("..")); assert(!ifname_valid(".."));
assert(ifname_valid("foo.bar")); assert(ifname_valid("foo.bar"));
assert(!ifname_valid("x:y")); assert(ifname_valid("x:y"));
assert(ifname_valid("xxxxxxxxxxxxxxx")); assert(ifname_valid("xxxxxxxxxxxxxxx"));
assert(!ifname_valid("xxxxxxxxxxxxxxxx")); assert(!ifname_valid("xxxxxxxxxxxxxxxx"));