Module Name: src Committed By: christos Date: Sun Feb 8 15:09:45 UTC 2015
Modified Files: src/usr.bin/netstat: inet.c inet6.c Log Message: Allocate the right size for pcb blocks. XXX: pullup-7! To generate a diff of this commit: cvs rdiff -u -r1.105 -r1.106 src/usr.bin/netstat/inet.c cvs rdiff -u -r1.67 -r1.68 src/usr.bin/netstat/inet6.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/netstat/inet.c diff -u src/usr.bin/netstat/inet.c:1.105 src/usr.bin/netstat/inet.c:1.106 --- src/usr.bin/netstat/inet.c:1.105 Sat Feb 7 14:36:06 2015 +++ src/usr.bin/netstat/inet.c Sun Feb 8 10:09:45 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: inet.c,v 1.105 2015/02/07 19:36:06 christos Exp $ */ +/* $NetBSD: inet.c,v 1.106 2015/02/08 15:09:45 christos Exp $ */ /* * Copyright (c) 1983, 1988, 1993 @@ -34,7 +34,7 @@ #if 0 static char sccsid[] = "from: @(#)inet.c 8.4 (Berkeley) 4/20/94"; #else -__RCSID("$NetBSD: inet.c,v 1.105 2015/02/07 19:36:06 christos Exp $"); +__RCSID("$NetBSD: inet.c,v 1.106 2015/02/08 15:09:45 christos Exp $"); #endif #endif /* not lint */ @@ -286,7 +286,7 @@ getpcblist_kmem(u_long off, const char * next = TAILQ_FIRST(head); prev = TAILQ_END(head); - if ((pcblist = malloc(size)) == NULL) + if ((pcblist = malloc(size * sizeof(*pcblist))) == NULL) err(1, "malloc"); i = 0; @@ -317,7 +317,9 @@ getpcblist_kmem(u_long off, const char * pcblist[i].ki_tstate = tcpcb.t_state; pcblist[i].ki_pflags = inpcb.inp_flags; if (i++ == size) { - struct kinfo_pcb *n = realloc(pcblist, size += 100); + size += 100; + struct kinfo_pcb *n = realloc(pcblist, + size * sizeof(*pcblist)); if (n == NULL) err(1, "realloc"); pcblist = n; Index: src/usr.bin/netstat/inet6.c diff -u src/usr.bin/netstat/inet6.c:1.67 src/usr.bin/netstat/inet6.c:1.68 --- src/usr.bin/netstat/inet6.c:1.67 Sat Feb 7 14:36:06 2015 +++ src/usr.bin/netstat/inet6.c Sun Feb 8 10:09:45 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: inet6.c,v 1.67 2015/02/07 19:36:06 christos Exp $ */ +/* $NetBSD: inet6.c,v 1.68 2015/02/08 15:09:45 christos Exp $ */ /* BSDI inet.c,v 2.3 1995/10/24 02:19:29 prb Exp */ /* @@ -64,7 +64,7 @@ #if 0 static char sccsid[] = "@(#)inet.c 8.4 (Berkeley) 4/20/94"; #else -__RCSID("$NetBSD: inet6.c,v 1.67 2015/02/07 19:36:06 christos Exp $"); +__RCSID("$NetBSD: inet6.c,v 1.68 2015/02/08 15:09:45 christos Exp $"); #endif #endif /* not lint */ @@ -303,7 +303,7 @@ getpcblist_kmem(u_long off, const char * next = TAILQ_FIRST(head); prev = TAILQ_END(head); - if ((pcblist = malloc(size)) == NULL) + if ((pcblist = malloc(size * sizeof(*pcblist))) == NULL) err(1, "malloc"); i = 0; @@ -338,7 +338,9 @@ getpcblist_kmem(u_long off, const char * memcpy(&pcblist[i].ki_d, &sin6, sizeof(sin6)); pcblist[i].ki_tstate = tcpcb.t_state; if (i++ == size) { - struct kinfo_pcb *n = realloc(pcblist, size += 100); + size += 100; + struct kinfo_pcb *n = realloc(pcblist, + size * sizeof(*pcblist)); if (n == NULL) err(1, "realloc"); pcblist = n;