Go to file
Eric Dumazet d2055ea597 ss: Fix allocation of cong control alg name
On Fri, 2015-05-29 at 13:30 +0300, Vadim Kochan wrote:
> From: Vadim Kochan <vadim4j@gmail.com>
>
> Use strdup instead of malloc, and get rid of bad strcpy.
>
> Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
> ---
>  misc/ss.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/misc/ss.c b/misc/ss.c
> index 347e3a1..a719466 100644
> --- a/misc/ss.c
> +++ b/misc/ss.c
> @@ -1908,8 +1908,7 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r,
>
>  		if (tb[INET_DIAG_CONG]) {
>  			const char *cong_attr = rta_getattr_str(tb[INET_DIAG_CONG]);
> -			s.cong_alg = malloc(strlen(cong_attr + 1));
> -			strcpy(s.cong_alg, cong_attr);
> +			s.cong_alg = strdup(cong_attr);
>  		}
>
>  		if (TCPI_HAS_OPT(info, TCPI_OPT_WSCALE)) {

I doubt TCP_CA_NAME_MAX will ever change in the kernel : 16 bytes.

Its typically "cubic" and less than 8 bytes.

Using 8 bytes to point to a malloc(8) is a waste.

Please remove the memory allocation, or store the pointer, since
tcp_show_info() does the malloc()/free() before return.
2015-06-24 23:11:33 -04:00
bridge libnetlink: add size argument to rtnl_talk 2015-05-27 13:00:21 -07:00
doc ip: support RFC4191 router preference 2015-03-24 15:45:23 -07:00
etc/iproute2 rt_dsfield: fix Expedited Forwarding PHB 2014-12-03 18:50:59 -08:00
examples examples: bpf: fix ld offs to have same prog loaded on ingress/egress 2015-04-27 16:42:32 -07:00
genl libnetlink: add size argument to rtnl_talk 2015-05-27 13:00:21 -07:00
include update to 4.1-rc5 headers 2015-05-27 18:27:42 -07:00
ip change of rtnetlink to use RTN_F_OFFLOAD 2015-05-27 18:29:02 -07:00
lib libnetlink: add size argument to rtnl_talk 2015-05-27 13:00:21 -07:00
man man ip-link: Remove extra GROUP explanation 2015-05-14 15:38:10 -07:00
misc ss: Fix allocation of cong control alg name 2015-06-24 23:11:33 -04:00
netem netem: fix installs of dist files 2010-07-31 19:31:04 -07:00
tc libnetlink: add size argument to rtnl_talk 2015-05-27 13:00:21 -07:00
testsuite tests: Add test for 'ip route add default' 2015-05-21 14:45:21 -07:00
tipc tipc: add new TIPC configuration tool 2015-05-21 14:41:41 -07: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 libmnl 2015-06-24 23:09:25 -04: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