Go to file
Nicolas Cavallari a1b4a274d4 netns: Fix an off-by-one strcpy() in netns_map_add().
netns_map_add() does a malloc of (sizeof (struct nsid_cache) +
strlen(name)) and then proceed with strcpy() of name into the
zero-length member at the end of the nsid_cache structure.  The
nul-terminator is written outside of the allocated memory and may
overwrite the allocator's internal structure.

This can trigger a segmentation fault on i386 uclibc with names of size 8:
after the corruption occurs, the call to closedir() on netns_map_init()
crashes while freeing the DIR structure.

Here is the relevant valgrind output:

==1251== Memcheck, a memory error detector
==1251== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==1251== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright
info
==1251== Command: ./ip netns
==1251==
==1251== Invalid write of size 1
==1251==    at 0x4011975: strcpy (in
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==1251==    by 0x8058B00: netns_map_add (ipnetns.c:181)
==1251==    by 0x8058E2A: netns_map_init (ipnetns.c:226)
==1251==    by 0x8058E79: do_netns (ipnetns.c:776)
==1251==    by 0x804D9FF: do_cmd (ip.c:110)
==1251==    by 0x804D814: main (ip.c:300)
2016-02-17 17:35:31 -08:00
bridge bridge: support for static fdb entries 2016-02-07 11:41:09 -08:00
doc Add ip rule save/restore 2015-10-22 23:35:57 -07:00
etc/iproute2 {f, m}_bpf: allow for user-defined object pinnings 2015-11-29 11:55:16 -08:00
examples tc, bpf, examples: further bpf_api improvements 2016-02-07 11:27:38 -08:00
genl genl: make string const 2015-12-30 17:17:45 -08:00
include Revert "tipc: add peer remove functionality" 2016-02-09 10:51:32 -08:00
ip netns: Fix an off-by-one strcpy() in netns_map_add(). 2016-02-17 17:35:31 -08:00
lib iproute2: fix building with musl 2016-02-02 15:58:33 +11:00
man Revert "tipc: add peer remove functionality" 2016-02-09 10:51:32 -08:00
misc ss: support closing inet sockets via SOCK_DESTROY. 2016-01-18 11:47:03 -08:00
netem netem: fix installs of dist files 2010-07-31 19:31:04 -07:00
tc tc, bpf: use bind/type macros from gelf 2016-02-07 11:27:38 -08:00
testsuite ip_tunnel: determine tunnel address family from the tunnel type 2015-11-29 11:57:21 -08:00
tipc Revert "tipc: add peer remove functionality" 2016-02-09 10:51:32 -08:00
.gitignore gitignore: Ignore 'doc' files generated at runtime 2014-10-29 22:26:15 -07:00
COPYING Update address of FSF in license 2008-03-08 13:31:03 -08:00
Makefile enable transparent LFS 2015-06-24 23:07:34 -04:00
README README: update mail address and download location 2013-01-18 09:54:58 -08: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 configure: Check for Berkeley DB for arpd compilation 2015-09-21 14:38:38 -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 file which
contains whether or not ATM is available, etc.

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