Bug 135681

Summary: xosview shows wrong swapspace size
Product: [openSUSE] SUSE Linux 10.1 Reporter: Olaf Dabrunz <odabrunz>
Component: X11 ApplicationsAssignee: Dr. Werner Fink <werner>
Status: RESOLVED FIXED QA Contact: Stefan Dirsch <sndirsch>
Severity: Normal    
Priority: P5 - None    
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: SuSE Linux 10.0   
Whiteboard:
Found By: Development Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Olaf Dabrunz 2005-11-28 15:27:36 UTC
I have 7 GB swapspace, but the graph in xosview show only about 3GB.

The swapspace calculation in linux/swapmeter.cc overflows, because it is done
in integer. I tested the following fix:

--- linux/swapmeter.cc.orig     2005-11-11 12:45:56.000000000 +0100
+++ linux/swapmeter.cc  2005-11-27 02:10:35.000000000 +0100
@@ -64,9 +64,9 @@ void SwapMeter::getswapinfo( void ){
 
   unit = (sinfo.mem_unit ? sinfo.mem_unit : 1); 
 
-  total_ = sinfo.totalswap * unit;
-  fields_[0] = (sinfo.totalswap - sinfo.freeswap) * unit;
-  fields_[1] = sinfo.freeswap * unit;
+  total_ = 1.0 * sinfo.totalswap * unit;
+  fields_[0] = 1.0 * (sinfo.totalswap - sinfo.freeswap) * unit;
+  fields_[1] = 1.0 * sinfo.freeswap * unit;
 
   if ( total_ == 0 ){
     total_ = 1;
Comment 1 Olaf Dabrunz 2005-11-28 15:38:35 UTC
Submitted the above patch to STABLE.