Go to file
Phil Sutter 625df645b7 Check user supplied interface name lengths
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>
2017-10-02 08:01:21 -07:00
bash-completion tc: bash-completion: Add support for matchall 2017-02-07 11:44:53 -08:00
bridge config: put CFLAGS/LDLIBS in config.mk 2017-08-23 10:03:09 -07:00
devlink devlink: Add support for protocol IPv4/IPv6/Ethernet special formats 2017-09-07 15:10:25 -07:00
doc/actions doc: drop old ip command documentation 2017-09-29 10:51:02 -07:00
etc/iproute2 whitespace cleanup 2017-01-12 17:31:20 -08:00
examples examples: Some shell fixes to cbq.init 2017-08-18 09:11:00 -07:00
genl Merge branch 'master' into net-next 2017-09-01 12:17:48 -07:00
include Check user supplied interface name lengths 2017-10-02 08:01:21 -07:00
ip Check user supplied interface name lengths 2017-10-02 08:01:21 -07:00
lib Check user supplied interface name lengths 2017-10-02 08:01:21 -07:00
man man: fix documentation for range of route table ID 2017-09-22 10:09:04 -07:00
misc Check user supplied interface name lengths 2017-10-02 08:01:21 -07:00
netem Merge branch 'master' into net-next 2017-08-24 15:30:32 -07:00
rdma Merge branch 'master' into net-next 2017-08-24 15:30:32 -07:00
schema bridge: add json schema for bridge fdb show 2016-07-20 12:02:02 -07:00
tc Check user supplied interface name lengths 2017-10-02 08:01:21 -07:00
testsuite testsuite: search for kernel config in /boot 2017-02-17 15:26:30 -08:00
tipc Merge branch 'master' into net-next 2017-08-24 15:30:32 -07:00
.gitignore ignore generated Config file 2017-09-29 10:02:45 -07:00
COPYING Update address of FSF in license 2008-03-08 13:31:03 -08:00
Makefile doc: drop old ip command documentation 2017-09-29 10:51:02 -07:00
README config: put CFLAGS/LDLIBS in config.mk 2017-08-23 10:03:09 -07:00
README.decnet Decnet documentation update 2005-06-13 18:47:56 +00:00
README.devel iproute2: fix minor typo in comments 2011-07-11 10:11:09 -07:00
README.distribution README cleanup's 2012-01-03 15:04:55 -08:00
README.iproute2+tc tc, bpf: finalize eBPF support for cls and act front-end 2015-04-10 13:31:19 -07:00
README.lnstat Rename: misc/README.lnstat -> README.lnstat 2004-10-19 20:24:47 +00:00
configure config: put CFLAGS/LDLIBS in config.mk 2017-08-23 10:03:09 -07:00

README

This is a set of utilities for Linux networking.

Information:
    http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2

Download:
    http://www.kernel.org/pub/linux/utils/net/iproute2/

Repository:
    git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git

How to compile this.
--------------------
1. libdbm

arpd needs to have the db4 development libraries. For Debian
users this is the package with a name like libdb4.x-dev.
DBM_INCLUDE points to the directory with db_185.h which
is the include file used by arpd to get to the old format Berkeley
database routines.  Often this is in the db-devel package.

2. make

The makefile will automatically build a config.mk file which
contains definitions of libraries that may or may not be available
on the system such as: ATM, ELF, MNL, and SELINUX.

3. To make documentation, cd to doc/ directory , then
   look at start of Makefile and set correct values for
   PAGESIZE=a4		, ie: a4 , letter ...	(string)
   PAGESPERPAGE=2	, ie: 1 , 2 ...		(numeric)
   and make there. It assumes, that latex, dvips and psnup
   are in your path.

4. This package includes matching sanitized kernel headers because
   the build environment may not have up to date versions. See Makefile
   if you have special requirements and need to point at different
   kernel include files.

Stephen Hemminger
stephen@networkplumber.org

Alexey Kuznetsov
kuznet@ms2.inr.ac.ru