From owner-freebsd-bugs@FreeBSD.ORG Tue Jul 1 10:20:11 2003 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D81C537B401 for ; Tue, 1 Jul 2003 10:20:11 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id B122343FEA for ; Tue, 1 Jul 2003 10:20:10 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.9/8.12.9) with ESMTP id h61HKAUp065805 for ; Tue, 1 Jul 2003 10:20:10 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.9/8.12.9/Submit) id h61HKA5N065804; Tue, 1 Jul 2003 10:20:10 -0700 (PDT) Resent-Date: Tue, 1 Jul 2003 10:20:10 -0700 (PDT) Resent-Message-Id: <200307011720.h61HKA5N065804@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Alexey Dokuchaev Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E1B9737B401 for ; Tue, 1 Jul 2003 10:16:56 -0700 (PDT) Received: from mx.nsu.ru (mx.nsu.ru [212.192.164.5]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5DACC4400B for ; Tue, 1 Jul 2003 10:16:55 -0700 (PDT) (envelope-from danfe@regency.nsu.ru) Received: from mail by mx.nsu.ru with drweb-scanned (Exim 3.36 #1 (Debian)) id 19XOtO-0005jj-00 for ; Wed, 02 Jul 2003 00:26:10 +0700 Received: from regency.nsu.ru ([193.124.210.26]) by mx.nsu.ru with esmtp (Exim 3.36 #1 (Debian)) id 19XOsp-0005b7-00 for ; Wed, 02 Jul 2003 00:25:35 +0700 Received: from regency.nsu.ru (localhost [127.0.0.1]) by regency.nsu.ru (8.12.8/8.12.8) with ESMTP id h61HGFBh056156 for ; Wed, 2 Jul 2003 00:16:15 +0700 (NOVST) (envelope-from danfe@regency.nsu.ru) Received: (from danfe@localhost) by regency.nsu.ru (8.12.8/8.12.8/Submit) id h61HGFjA056131; Wed, 2 Jul 2003 00:16:15 +0700 (NOVST) Message-Id: <200307011716.h61HGFjA056131@regency.nsu.ru> Date: Wed, 2 Jul 2003 00:16:15 +0700 (NOVST) From: Alexey Dokuchaev To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: bin/53980: [FIX] Better memory utilization in fstat(1) X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Alexey Dokuchaev List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Jul 2003 17:20:12 -0000 >Number: 53980 >Category: bin >Synopsis: [FIX] Better memory utilization in fstat(1) >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Jul 01 10:20:10 PDT 2003 >Closed-Date: >Last-Modified: >Originator: Alexey Dokuchaev >Release: FreeBSD 5.1-CURRENT i386 >Organization: CNIT NSU >Environment: System: FreeBSD cytherea.nsu.ru 5.1-CURRENT FreeBSD 5.1-CURRENT #6: Tue Jul 1 13:05:23 NOVT 2003 root@cytherea.nsu.ru:/usr/obj/usr/src/sys/CYTHEREA i386 >Description: When stating vnode on msdosfs (insice msdosfs_filestat()), memory is being allocated, but never released during function execution. Thus, it seems that when fstat(1) run on msdosfs with some huge files on it, quite a few memory could be allocated and never free until end of fstat(1) execution. While this probably rather hard to reveal under normal circumastances, freeing memory still seems like a good practice to me, since generally one could not bother freeing memory in main() or some other being-called-one-time function, but forgetting about free() in repeatedly called function is not that fair anymore. >How-To-Repeat: N/A >Fix: Index: msdosfs.c =================================================================== RCS file: /home/ncvs/src/usr.bin/fstat/msdosfs.c,v retrieving revision 1.7 diff -u -r1.7 msdosfs.c --- msdosfs.c 24 Jun 2003 08:18:18 -0000 1.7 +++ msdosfs.c 1 Jul 2003 16:56:37 -0000 @@ -107,6 +107,7 @@ dprintf(stderr, "can't read mount info at %p for pid %d\n", (void *)denode.de_pmp, Pid); + free(mnt); return 0; } } @@ -147,5 +148,6 @@ } fsp->fileid = fileid; + free(mnt); return 1; } >Release-Note: >Audit-Trail: >Unformatted: