From owner-freebsd-ports-bugs@FreeBSD.ORG Thu Jan 26 02:40:03 2006 Return-Path: X-Original-To: freebsd-ports-bugs@hub.freebsd.org Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9405216A420 for ; Thu, 26 Jan 2006 02:40:03 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 15B6043D46 for ; Thu, 26 Jan 2006 02:40:03 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k0Q2e2Qo061336 for ; Thu, 26 Jan 2006 02:40:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k0Q2e2b3061335; Thu, 26 Jan 2006 02:40:02 GMT (envelope-from gnats) Resent-Date: Thu, 26 Jan 2006 02:40:02 GMT Resent-Message-Id: <200601260240.k0Q2e2b3061335@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, Tom Pavel Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 97D0516A420 for ; Thu, 26 Jan 2006 02:33:02 +0000 (GMT) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [216.136.204.117]) by mx1.FreeBSD.org (Postfix) with ESMTP id 64DE343D48 for ; Thu, 26 Jan 2006 02:33:02 +0000 (GMT) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.13.1/8.13.1) with ESMTP id k0Q2X2Fp041579 for ; Thu, 26 Jan 2006 02:33:02 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.13.1/8.13.1/Submit) id k0Q2X2Im041578; Thu, 26 Jan 2006 02:33:02 GMT (envelope-from nobody) Message-Id: <200601260233.k0Q2X2Im041578@www.freebsd.org> Date: Thu, 26 Jan 2006 02:33:02 GMT From: Tom Pavel To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-2.3 Cc: Subject: ports/92339: xosview port has a memory leak 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: Thu, 26 Jan 2006 02:40:03 -0000 >Number: 92339 >Category: ports >Synopsis: xosview port has a memory leak >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Jan 26 02:40:02 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Tom Pavel >Release: 6.0-RELEASE >Organization: Network Physics >Environment: FreeBSD valiant.fractal.networkphysics.com 6.0-RELEASE FreeBSD 6.0-RELEASE #0: Thu Nov 3 09:36:13 UTC 2005 root@x64.samsco.home:/usr/obj/usr/src/sys/GENERIC i386 >Description: The sysutils/xosview port that comes with 6.0 results in a memory leak that eventually crashes the xosview process. The CVS tree doesn't show any activity here more recent than 6.0. The attached extra patch to bsd/kernel.cc fixes the problem. >How-To-Repeat: >Fix: --- work/xosview-1.8.2/bsd/kernel.cc.save Thu Jan 19 14:26:39 2006 +++ work/xosview-1.8.2/bsd/kernel.cc Fri Jan 20 16:35:35 2006 @@ -1006,8 +1006,8 @@ } #else /* FreeBSD 5.x and 6.x */ /* This code is stolen from vmstat */ - unsigned long *kvm_intrcnt; - char *kvm_intrname; + unsigned long *kvm_intrcnt, *base_intrcnt; + char *kvm_intrname, *base_intrname; size_t inamlen, intrcntlen; unsigned int i, nintr; int d; @@ -1020,6 +1020,10 @@ ((kvm_intrname = (char *)malloc(inamlen)) == NULL)) err(1, "malloc()"); + // keep track of the mem we're given: + base_intrcnt = kvm_intrcnt; + base_intrname = kvm_intrname; + safe_kvm_read (nlst[INTRCNT_SYM_INDEX].n_value, kvm_intrcnt, intrcntlen); safe_kvm_read (nlst[INTRNAMES_SYM_INDEX].n_value, kvm_intrname, inamlen); @@ -1035,6 +1039,10 @@ kvm_intrcnt++; kvm_intrname += strlen(kvm_intrname) + 1; } + + // Doh! somebody needs to free this stuff too... (pavel 20-Jan-2006) + free(base_intrcnt); + free(base_intrname); #endif #elif defined (XOSVIEW_BSDI) int nintr = 16; >Release-Note: >Audit-Trail: >Unformatted: