mirror of
https://git.proxmox.com/git/mirror_iproute2
synced 2026-01-28 01:45:57 +00:00
The original problem was that something like: | strncpy(ifr.ifr_name, *argv, IFNAMSIZ); might leave ifr.ifr_name unterminated if length of *argv exceeds IFNAMSIZ. In order to fix this, I thought about replacing all those cases with (equivalent) calls to snprintf() or even introducing strlcpy(). But as Ulrich Drepper correctly pointed out when rejecting the latter from being added to glibc, truncating a string without notifying the user is not to be considered good practice. So let's excercise what he suggested and reject empty, overlong or otherwise invalid interface names right from the start - this way calls to strncpy() like shown above become safe and the user has a chance to reconsider what he was trying to do. Note that this doesn't add calls to check_ifname() to all places where user supplied interface name is parsed. In many cases, the interface must exist already and is therefore looked up using ll_name_to_index(), so if_nametoindex() will perform the necessary checks already. Signed-off-by: Phil Sutter <phil@nwl.cc> |
||
|---|---|---|
| .. | ||
| bpf.c | ||
| color.c | ||
| coverity_model.c | ||
| dnet_ntop.c | ||
| dnet_pton.c | ||
| exec.c | ||
| fs.c | ||
| inet_proto.c | ||
| ipx_ntop.c | ||
| ipx_pton.c | ||
| json_print.c | ||
| json_writer.c | ||
| libgenl.c | ||
| libnetlink.c | ||
| ll_addr.c | ||
| ll_map.c | ||
| ll_proto.c | ||
| ll_types.c | ||
| Makefile | ||
| mpls_ntop.c | ||
| mpls_pton.c | ||
| names.c | ||
| namespace.c | ||
| rt_names.c | ||
| utils.c | ||