diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-09-03 15:38:46 +0200 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-09-10 00:46:44 +0200 |
commit | c1f848d73c076527b617c132d7dd3cdb1699e2b8 (patch) | |
tree | 821119e94eca3658e54ca3759df2e6b9487d8de3 /src/shared/socket-netlink.c | |
parent | b16d17a68ae8b44111b08c2689b3dee1d1f90169 (diff) | |
download | systemd-c1f848d73c076527b617c132d7dd3cdb1699e2b8.tar.gz |
shared: check interface name validity in in_addr_port_ifindex_name_from_string_auto()
We don't try to resolve invalid ifnames as all. A different return
code is used. This difference will be verified later in test_socket_address_parse()
when socket_address_parse() is converted to use
in_addr_port_ifindex_name_from_string_auto().
Diffstat (limited to 'src/shared/socket-netlink.c')
-rw-r--r-- | src/shared/socket-netlink.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/shared/socket-netlink.c b/src/shared/socket-netlink.c index 4b52fa3097..61db269791 100644 --- a/src/shared/socket-netlink.c +++ b/src/shared/socket-netlink.c @@ -379,6 +379,10 @@ int in_addr_port_ifindex_name_from_string_auto( if (isempty(m + 1)) return -EINVAL; + if (!ifname_valid_full(m + 1, IFNAME_VALID_ALTERNATIVE | IFNAME_VALID_NUMERIC)) + return -EINVAL; /* We want to return -EINVAL for syntactically invalid names, + * and -ENODEV for valid but nonexistent interfaces. */ + ifindex = resolve_interface(NULL, m + 1); if (ifindex < 0) return ifindex; |