bin/154147: netstat -ian leaking out embedded scope index

Petr Lampa lampa at fit.vutbr.cz
Wed Jan 19 18:10:13 UTC 2011


>Number:         154147
>Category:       bin
>Synopsis:       netstat -ian leaking out embedded scope index
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jan 19 18:10:12 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Petr Lampa
>Release:        8.2-PRERELEASE
>Organization:
BUT FIT 
>Environment:
FreeBSD XXX 8.2-PRERELEASE FreeBSD 8.2-PRERELEASE #18: Tue Jan 18 15:59:42 CET 2011     XXX at XXX:/usr/src/sys/i386/compile/GUTA  i386
>Description:

netstat -ian
em0    1500 2001:718:802: 2001:718:802:809:    22110     -     -    25384     -     -
                          ff05::1:3          (refs: 1)
                          ff02:1::1:2        (refs: 1)
                          ff02:1::202        (refs: 1)
                          ff02:1::1:ffe5:913 (refs: 1)
                          ff02:1::1:ffe5:90b (refs: 1)
                          ff01:1::1          (refs: 1)
                          ff02:1::2:7d68:cd71(refs: 1)
                          ff02:1::1          (refs: 1)
                          ff02:1::1:ff30:8646(refs: 1)

Some multicast addresses have embedded scope index in output.
Original report is here:
http://docs.freebsd.org/cgi/getmsg.cgi?fetch=280697+0+current/freebsd-net
>How-To-Repeat:
netstat -ian

>Fix:
/usr/src/usr.bin/netstat

*** if.c.old    2011-01-19 18:41:32.000000000 +0100
--- if.c        2011-01-19 18:53:18.000000000 +0100
***************
*** 475,480 ****
--- 475,487 ----
                                        break;
  #ifdef INET6
                                case AF_INET6:
+                                       if (IN6_IS_ADDR_LINKLOCAL(&msa.in6.sin6_addr) ||
+                                           IN6_IS_ADDR_MC_NODELOCAL(&msa.in6.sin6_addr) ||
+                                           IN6_IS_ADDR_MC_LINKLOCAL(&msa.in6.sin6_addr)) {
+
+                                               msa.in6.sin6_addr.s6_addr[2] = 0;
+                                               msa.in6.sin6_addr.s6_addr[3] = 0;
+                                       }
                                        printf("%*s %-19.19s(refs: %d)\n",
                                               Wflag ? 27 : 25, "",
                                               inet_ntop(AF_INET6,


Patch attached with submission follows:

*** usr.bin/netstat/if.c.old	2011-01-19 18:41:32.000000000 +0100
--- usr.bin/netstat/if.c	2011-01-19 18:53:18.000000000 +0100
***************
*** 475,480 ****
--- 475,487 ----
  					break;
  #ifdef INET6
  				case AF_INET6:
+ 					if (IN6_IS_ADDR_LINKLOCAL(&msa.in6.sin6_addr) ||
+ 					    IN6_IS_ADDR_MC_NODELOCAL(&msa.in6.sin6_addr) ||
+ 					    IN6_IS_ADDR_MC_LINKLOCAL(&msa.in6.sin6_addr)) {
+ 					    
+ 						msa.in6.sin6_addr.s6_addr[2] = 0;
+ 						msa.in6.sin6_addr.s6_addr[3] = 0;
+ 					}
  					printf("%*s %-19.19s(refs: %d)\n",
  					       Wflag ? 27 : 25, "",
  					       inet_ntop(AF_INET6,


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list