svn commit: r246719 - head/usr.bin/kdump

Andrey Zonov zont at FreeBSD.org
Tue Feb 12 18:48:12 UTC 2013


Author: zont
Date: Tue Feb 12 18:48:11 2013
New Revision: 246719
URL: http://svnweb.freebsd.org/changeset/base/246719

Log:
  - Use correct size of copying different socket structures.
  
  MFC after:	1 week

Modified:
  head/usr.bin/kdump/kdump.c

Modified: head/usr.bin/kdump/kdump.c
==============================================================================
--- head/usr.bin/kdump/kdump.c	Tue Feb 12 18:38:01 2013	(r246718)
+++ head/usr.bin/kdump/kdump.c	Tue Feb 12 18:48:11 2013	(r246719)
@@ -1443,7 +1443,7 @@ ktrsockaddr(struct sockaddr *sa)
 		struct sockaddr_in sa_in;
 
 		memset(&sa_in, 0, sizeof(sa_in));
-		memcpy(&sa_in, sa, sizeof(sa));
+		memcpy(&sa_in, sa, sa->sa_len);
 		check_sockaddr_len(in);
 		inet_ntop(AF_INET, &sa_in.sin_addr, addr, sizeof addr);
 		printf("%s:%u", addr, ntohs(sa_in.sin_port));
@@ -1455,7 +1455,7 @@ ktrsockaddr(struct sockaddr *sa)
 		struct netrange		*nr;
 
 		memset(&sa_at, 0, sizeof(sa_at));
-		memcpy(&sa_at, sa, sizeof(sa));
+		memcpy(&sa_at, sa, sa->sa_len);
 		check_sockaddr_len(at);
 		nr = &sa_at.sat_range.r_netrange;
 		printf("%d.%d, %d-%d, %d", ntohs(sa_at.sat_addr.s_net),
@@ -1468,7 +1468,7 @@ ktrsockaddr(struct sockaddr *sa)
 		struct sockaddr_in6 sa_in6;
 
 		memset(&sa_in6, 0, sizeof(sa_in6));
-		memcpy(&sa_in6, sa, sizeof(sa));
+		memcpy(&sa_in6, sa, sa->sa_len);
 		check_sockaddr_len(in6);
 		inet_ntop(AF_INET6, &sa_in6.sin6_addr, addr, sizeof addr);
 		printf("[%s]:%u", addr, htons(sa_in6.sin6_port));
@@ -1479,7 +1479,7 @@ ktrsockaddr(struct sockaddr *sa)
 		struct sockaddr_ipx sa_ipx;
 
 		memset(&sa_ipx, 0, sizeof(sa_ipx));
-		memcpy(&sa_ipx, sa, sizeof(sa));
+		memcpy(&sa_ipx, sa, sa->sa_len);
 		check_sockaddr_len(ipx);
 		/* XXX wish we had ipx_ntop */
 		printf("%s", ipx_ntoa(sa_ipx.sipx_addr));
@@ -1491,7 +1491,7 @@ ktrsockaddr(struct sockaddr *sa)
 		struct sockaddr_un sa_un;
 
 		memset(&sa_un, 0, sizeof(sa_un));
-		memcpy(&sa_un, sa, sizeof(sa));
+		memcpy(&sa_un, sa, sa->sa_len);
 		check_sockaddr_len(un);
 		printf("%.*s", (int)sizeof(sa_un.sun_path), sa_un.sun_path);
 		break;


More information about the svn-src-all mailing list