bin/50603: Use of uninitialized value in printf at /usr/bin/sockstat line 141.

Jacques jacques at ataris.co.za
Fri Apr 4 07:10:09 PST 2003


>Number:         50603
>Category:       bin
>Synopsis:       Use of uninitialized value in printf at /usr/bin/sockstat line 141.
>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:   Fri Apr 04 07:10:02 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Jacques
>Release:        FreeBSD 4.8-RC i386
>Organization:
Ataris Technologies
>Environment:
System: FreeBSD mimbari.ataris.co.za 4.8-RC FreeBSD 4.8-RC #2: Thu Apr 3 15:09:34 SAST 2003 root at mimbari.ataris.co.za:/usr/obj/usr/src/sys/MIMBARI i386

Has existed since early 4.4-STABLE days if my memory serves me correctly.

>Description:
	There is an bug in usr.bin/sockstat/sockstat.pl which appears when
	the sysctl variable kern.ps_showallprocs is set to 0.  When
	kern.ps_showallprocs is set to 1 the problem does not occur.

Without the patch sockstat outputs:
jacques at mimbari:~$ sockstat
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
jacques  sshd     83428    5 tcp4   XXX.XXX.X.X:22        XXX.XXX.X.XXX:2409
jacques  sshd     54396    5 tcp4   XXX.XXX.X.X:22        XXX.XXX.X.XXX:2257
jacques  sshd     46680    5 tcp4   XXX.XXX.X.X:22        XXX.XXX.X.XXX:2215
jacques  ssh      26598    3 tcp4   XXX.X.XX.XX:1084      XXX.X.XX.XX:22
jacques  sshd     26526    5 tcp4   XXX.XXX.X.X:22        XXX.XXX.X.XXX:2175

USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS

USER     COMMAND    PID   FD PROTO  ADDRESS
Use of uninitialized value at /usr/bin/sockstat line 141.
jacques  sshd     83428    3 stream
Use of uninitialized value at /usr/bin/sockstat line 141.
jacques  sshd     54396    3 stream
Use of uninitialized value at /usr/bin/sockstat line 141.
jacques  sshd     46680    3 stream
Use of uninitialized value at /usr/bin/sockstat line 141.
jacques  sshd     26526    3 stream

With the patch the output looks like:

jacques at mimbari:~$ !perl
perl /usr/src/usr.bin/sockstat/sockstat.pl
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
jacques  sshd     83428    5 tcp4   XXX.XXX.X.X:22        XXX.XXX.X.XXX:2409
jacques  sshd     54396    5 tcp4   XXX.XXX.X.X:22        XXX.XXX.X.XXX:2257
jacques  sshd     46680    5 tcp4   XXX.XXX.X.X:22        XXX.XXX.X.XXX:2215
jacques  ssh      26598    3 tcp4   XXX.X.XX.XX:1084      XXX.X.XX.XX:22
jacques  sshd     26526    5 tcp4   XXX.XXX.X.X:22        XXX.XXX.X.XXX:2175

USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS

USER     COMMAND    PID   FD PROTO  ADDRESS
jacques  sshd     83428    3 stream (none)
jacques  sshd     54396    3 stream (none)
jacques  sshd     46680    3 stream (none)
jacques  sshd     26526    3 stream (none)

>How-To-Repeat:
	
>Fix:
	Credits go to Cas <xcas at cox.net> who supplied the fix and I've made
	the patch file of the change from Cas.

	Apply the following patch in /usr/src
	patch < /root/patches/sockstat.pl

--- sockstat.patch begins here ---
--- usr.bin/sockstat/sockstat.pl.old	Wed Oct  3 00:41:22 2001
+++ usr.bin/sockstat/sockstat.pl	Fri Apr  4 15:01:49 2003
@@ -140,7 +140,7 @@
 	$nsd = $netstat{$fsd->[6]} || $unknown;
 	printf($unix_fmt, $fsd->[0], $fsd->[1], $fsd->[2],
 	       substr($fsd->[3], 0, -1), $fsd->[5],
-	       $nsd->[8] || ($fsd->[8] ? $endpoint{$fsd->[8]} : "(none)"));
+	       $nsd->[8] || ($fsd->[8] && $endpoint{$fsd->[8]} ? $endpoint{$fsd->[8]} : "(none)"));
     }
     print("\n");
 }
--- sockstat.patch ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list