From abial@korin.warman.org.pl  Fri Sep 19 06:02:00 1997
Received: from korin.warman.org.pl (korin.warman.org.pl [148.81.160.10])
          by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id GAA10358
          for <FreeBSD-gnats-submit@freebsd.org>; Fri, 19 Sep 1997 06:01:57 -0700 (PDT)
Received: (from abial@localhost)
	by korin.warman.org.pl (8.8.7/8.8.5) id PAA13501;
	Fri, 19 Sep 1997 15:03:44 +0200 (CEST)
Message-Id: <199709191303.PAA13501@korin.warman.org.pl>
Date: Fri, 19 Sep 1997 15:03:44 +0200 (CEST)
From: Andrzej Bialecki <abial@korin.warman.org.pl>
Reply-To: abial@korin.warman.org.pl
To: FreeBSD-gnats-submit@freebsd.org
Subject: integer overflow in 'sa -km'
X-Send-Pr-Version: 3.2

>Number:         4582
>Category:       bin
>Synopsis:       integer overflow in 'sa -km'
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Sep 19 06:10:00 PDT 1997
>Closed-Date:    Thu Aug 5 23:42:08 PDT 1999
>Last-Modified:  Fri Aug  6 00:07:16 PDT 1999
>Originator:     Andrzej Bialecki
>Release:        FreeBSD 3.0-CURRENT i386
>Organization:
Research and Academic Network
>Environment:

	-current as of beginning of Sep

>Description:

	'sa -km' gives erroneous results, most probably because of
	integer overflow somewhere:
korin:~> sa -km
root        328808       514.41cpu      1723820tio4662999034058040619k
daemon         915        18.45cpu         3914tio4645041814295546394k
pwr           1937         0.54cpu         8940tio4674971065316569034k
abial         4695        22.93cpu        66703tio4657095280555631290k
pcg          23562         0.64cpu        50594tio4689191117479392754k
jacek            7         0.00cpu           56tio4667556731635506718k
krzych     3522459      2862.77cpu      4258301tio4664307048490154874k
rafal           51         0.06cpu          428tio4664439222741607509k
krzycki         19         0.02cpu          169tio4664848505141985280k
artw             9         0.02cpu          243tio4664990776516932444k
askrz           17         0.02cpu          180tio4665074672938562251k
lab              2         0.01cpu           32tio4665884345050952797k
nobody          30         1.20cpu        32049tio4642563007591943195k
korin:~>


>How-To-Repeat:

	Turn accounting ON. Issue 'sa -km'.

>Fix:
	
	Don't know.

>Release-Note:
>Audit-Trail:

From: Sakari Jalovaara <sja@tekla.fi>
To: FreeBSD-gnats-submit@freebsd.org
Cc:  Subject: Re: bin/4582: integer overflow in 'sa -km'
Date: Thu, 7 May 1998 15:13:06 +0300

 This (sa -km) needs a one-line fix.
 
 /usr/src/usr.sbin/sa/usrdb.c prints a double using quad format:
 	printf("%12qu%s", ui->ui_mem / t, "k");
 which should be
 	printf("%12qu%s", (u_quad_t) (ui->ui_mem / t), "k");
 
 While you are in usrdb.c, might as well add a missing
 "#include <stdlib.h>" to get a prototype for user_from_uid(3).
 
 cc -fsyntax-only -Wformat usrdb.c
 									++sja

From: Robert Garrett <eagle@phc.igs.net>
To: freebsd-gnats-submit@freebsd.org, abial@korin.warman.org.pl
Cc:  
Subject: Re: bin/4582: integer overflow in 'sa -km'
Date: Fri, 06 Aug 1999 00:14:01 -0400

 postfix        681         0.43cpu         9753tio       12126k
 squid          396         0.02cpu         1956tio      118677k
 ron            523        69.97cpu         1075tio          43k
 qt            1875         9.90cpu         6167tio        5424k
 john           685        22.49cpu        12174tio        2810k
 vespid          19         0.00cpu           57tio       14708k
 2pac          3084       411.14cpu        52272tio        1535k
 rich          1563        43.65cpu        23461tio        2976k
 
 correction theres four lines that need the change
 
 251c251
 <                       printf("%12qu%s", ui->ui_io / ui->ui_calls,
 "avio");
 ---
 >                       printf("%12qu%s",(u_quad_t) ( ui->ui_io /
 ui->ui_calls), "avio");
 253c253
 <                       printf("%12qu%s", ui->ui_io, "tio");
 ---
 >                       printf("%12qu%s", (u_quad_t) (ui->ui_io),
 "tio");
 257c257
 <                       printf("%12qu%s", ui->ui_mem / t, "k");
 ---
 >                       printf("%12qu%s", (u_quad_t) (ui->ui_mem / t),
 "k");
 259c259
 <                       printf("%12qu%s", ui->ui_mem, "k*sec");
 ---
 >                       printf("%12qu%s", (u_quad_t) (ui->ui_mem),
 "k*sec");
 
 rob
 
 
 
State-Changed-From-To: open->closed 
State-Changed-By: bde 
State-Changed-When: Thu Aug 5 23:42:08 PDT 1999 
State-Changed-Why:  
Fixed in -current in rev.1.7 of sa/usrdb.c. 
Fixed in RELENG_3 in rev.1.6.2.1 of sa/usrdb.c. 
>Unformatted:
