MFC r205296:

Properly progress through the list of IPv6 addresses using in6_addr size.

  Right now if a jail has multiple IPv6 addresses, it will print them
  shifting only 4 bytes at a time. Example:

        2001:4dd0:ff41::b23f:a9
        2001:4dd0:ff41::b23f:aa

  Becomes:

        2001:4dd0:ff41::b23f:a9
        ff41::b23f:a9:2001:4dd0

  By casting to in6_addr, it uses the correct offsets.
This commit is contained in:
Ed Schouten 2010-03-24 12:11:59 +00:00
parent 2dec7615c6
commit be24350167
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/stable/8/; revision=205585

View file

@ -355,7 +355,7 @@ print_jail(int pflags, int jflags)
count = params[7].jp_valuelen / sizeof(struct in6_addr);
for (ai = 0; ai < count; ai++)
if (inet_ntop(AF_INET6,
&((struct in_addr *)params[7].jp_value)[ai],
&((struct in6_addr *)params[7].jp_value)[ai],
ipbuf, sizeof(ipbuf)) == NULL)
err(1, "inet_ntop");
else