From owner-freebsd-ports-bugs@FreeBSD.ORG Tue Mar 8 22:20:09 2011 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 561041065670 for ; Tue, 8 Mar 2011 22:20:09 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 14F3C8FC18 for ; Tue, 8 Mar 2011 22:20:09 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id p28MK850049509 for ; Tue, 8 Mar 2011 22:20:08 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p28MK8CB049508; Tue, 8 Mar 2011 22:20:08 GMT (envelope-from gnats) Resent-Date: Tue, 8 Mar 2011 22:20:08 GMT Resent-Message-Id: <201103082220.p28MK8CB049508@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Zhihao Yuan Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EAA9E106564A for ; Tue, 8 Mar 2011 22:19:18 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id D91868FC17 for ; Tue, 8 Mar 2011 22:19:18 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.4/8.14.4) with ESMTP id p28MJIEH090152 for ; Tue, 8 Mar 2011 22:19:18 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.4/8.14.4/Submit) id p28MJIrX090151; Tue, 8 Mar 2011 22:19:18 GMT (envelope-from nobody) Message-Id: <201103082219.p28MJIrX090151@red.freebsd.org> Date: Tue, 8 Mar 2011 22:19:18 GMT From: Zhihao Yuan To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: ports/155382: sysutils/xfce4-systemload-plugin: Memory size overflow when >3.5GB X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Mar 2011 22:20:09 -0000 >Number: 155382 >Category: ports >Synopsis: sysutils/xfce4-systemload-plugin: Memory size overflow when >3.5GB >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Mar 08 22:20:08 UTC 2011 >Closed-Date: >Last-Modified: >Originator: Zhihao Yuan >Release: FreeBSD 8.2-STABLE >Organization: Northern Illinois University >Environment: FreeBSD compaq.yuetime 8.2-STABLE FreeBSD 8.2-STABLE #0: Tue Mar 8 01:53:40 CST 2011 root@compaq.yuetime:/usr/obj/usr/src/sys/HOUKAGO amd64 >Description: In file panel-plugin/memswap.c , the author defined the *_pages variables as int, which is long enough to represent the length of pages. But he multiplied the total_pages by pagesize, so the overflow occurred. >How-To-Repeat: Starts xfce4-systemload-plugin on a system with more than 3.5GB real memory, you will see a very huge number for the total memory (If the used memory is larger than 3.5GB, no lucky). >Fix: Use the authors' own macro CONVERT(_pages), which casts the page length into quad_t, to calculate the memory sizes. Patch attached with submission follows: --- panel-plugin/memswap.c.orig 2010-12-09 10:04:10.000000000 -0600 +++ panel-plugin/memswap.c 2011-02-22 21:41:38.000000000 -0600 @@ -228,8 +228,8 @@ gint read_memswap(gulong *mem, gulong *s return -1; } - *MT = (total_pages*pagesize) >> 10; - *MU = ((total_pages-free_pages-inactive_pages) * pagesize) >> 10; + *MT = CONVERT(total_pages); + *MU = CONVERT(total_pages-free_pages-inactive_pages); *mem = *MU * 100 / *MT; if((*swap = swapmode(&swap_avail, &swap_free)) >= 0) { >Release-Note: >Audit-Trail: >Unformatted: