From root@mimbari.ataris.co.za  Fri Apr  4 07:03:24 2003
Return-Path: <root@mimbari.ataris.co.za>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 0932237B401
	for <FreeBSD-gnats-submit@freebsd.org>; Fri,  4 Apr 2003 07:03:24 -0800 (PST)
Received: from mimbari.ataris.co.za (net-130-128.mweb.co.za [196.2.130.128])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 101FE43FA3
	for <FreeBSD-gnats-submit@freebsd.org>; Fri,  4 Apr 2003 07:03:16 -0800 (PST)
	(envelope-from root@mimbari.ataris.co.za)
Received: from root by mimbari.ataris.co.za with local (Exim 3.36 #1)
	id 191SZE-000MWK-00; Fri, 04 Apr 2003 16:53:20 +0200
Message-Id: <E191SZE-000MWK-00@mimbari.ataris.co.za>
Date: Fri, 04 Apr 2003 16:53:20 +0200
From: Jacques <jacques@ataris.co.za>
Reply-To: Jacques <jacques@ataris.co.za>
To: FreeBSD-gnats-submit@freebsd.org
Cc: jm@unix.co.nz
Subject: Use of uninitialized value in printf at /usr/bin/sockstat line 141.
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>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:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Apr 04 07:10:02 PST 2003
>Closed-Date:    Sun May 04 23:47:48 PDT 2003
>Last-Modified:  Sun May 04 23:47:48 PDT 2003
>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@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@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@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@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:
State-Changed-From-To: open->closed 
State-Changed-By: murray 
State-Changed-When: Sun May 4 23:44:34 PDT 2003 
State-Changed-Why:  
I have committed this change to -STABLE.  Thanks for your submission 
and your patience. 


http://www.freebsd.org/cgi/query-pr.cgi?pr=50603 
>Unformatted:
