[git commit master 1/1] netstat: was using buffers one byte short for scanf (no place for NUL). fixing
Denys Vlasenko
vda.linux at googlemail.com
Thu Oct 28 00:36:17 UTC 2010
commit: http://git.busybox.net/busybox/commit/?id=db9ccc57728ccc7ca3c949437828e3d6d9d2dc5d
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
networking/netstat.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/networking/netstat.c b/networking/netstat.c
index 485a7d1..2a83af3 100644
--- a/networking/netstat.c
+++ b/networking/netstat.c
@@ -395,11 +395,14 @@ struct inet_params {
static int scan_inet_proc_line(struct inet_params *param, char *line)
{
int num;
- char local_addr[64], rem_addr[64];
+ /* IPv6 /proc files use 32-char hex representation
+ * of IPv6 address, followed by :PORT_IN_HEX
+ */
+ char local_addr[33], rem_addr[33]; /* 32 + 1 for NUL */
num = sscanf(line,
- "%*d: %64[0-9A-Fa-f]:%X "
- "%64[0-9A-Fa-f]:%X %X "
+ "%*d: %32[0-9A-Fa-f]:%X "
+ "%32[0-9A-Fa-f]:%X %X "
"%lX:%lX %*X:%*X "
"%*X %d %*d %ld ",
local_addr, ¶m->local_port,
--
1.7.1
More information about the busybox-cvs
mailing list