From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 30 08:33:03 2012 Received: (at submit) by debbugs.gnu.org; 30 Sep 2012 12:33:03 +0000 Received: from localhost ([127.0.0.1]:34114 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TIIhi-0003a3-Of for submit@debbugs.gnu.org; Sun, 30 Sep 2012 08:33:03 -0400 Received: from eggs.gnu.org ([208.118.235.92]:33297) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TIIhg-0003Ze-Hl for submit@debbugs.gnu.org; Sun, 30 Sep 2012 08:33:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TIIhK-0000tg-Tb for submit@debbugs.gnu.org; Sun, 30 Sep 2012 08:32:39 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:47028) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TIIhK-0000tc-Qh for submit@debbugs.gnu.org; Sun, 30 Sep 2012 08:32:38 -0400 Received: from eggs.gnu.org ([208.118.235.92]:43732) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TIIhK-0001Cx-1E for bug-coreutils@gnu.org; Sun, 30 Sep 2012 08:32:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TIIhI-0000tS-Td for bug-coreutils@gnu.org; Sun, 30 Sep 2012 08:32:37 -0400 Received: from mx.meyering.net ([88.168.87.75]:56364) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TIIhI-0000tO-Mm for bug-coreutils@gnu.org; Sun, 30 Sep 2012 08:32:36 -0400 Received: from rho.meyering.net (rho.meyering.net [127.0.0.1]) by rho.meyering.net (Acme Bit-Twister) with ESMTP id D259960152 for ; Sun, 30 Sep 2012 14:32:35 +0200 (CEST) From: Jim Meyering To: bug-coreutils@gnu.org Subject: [PATCH] du: avoid abort on systems for which ->me_type is not malloc'd Date: Sun, 30 Sep 2012 14:32:35 +0200 Message-ID: <871uhjy9lo.fsf@rho.meyering.net> Lines: 39 MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 208.118.235.17 X-Spam-Score: -6.9 (------) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.9 (------) I noticed that "make check" was failing a fundamental test of du on OpenBSD. It would have been trivial to diagnose with valgrind, but that tool wasn't easily available on the affected system... [I'm reporting this to the bug- mailing list, since I suppose we should report all bugs there. ] >From caaf7cce39828ef3e90766fe2d6cc64559c13a60 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sun, 30 Sep 2012 14:28:47 +0200 Subject: [PATCH] du: avoid abort on systems for which ->me_type is not malloc'd On some systems (notably, BSD-based, like at least OpenBSD 4.9), the me_type member does not come from the heap. * src/du.c (fill_mount_table): Free the ->me_type member only when it was malloc'd, i.e., when ->me_type_malloced is nonzero. Bug introduced via commit v8.19-2-gcf7e1b5. --- src/du.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/du.c b/src/du.c index ee90da9..63daaa9 100644 --- a/src/du.c +++ b/src/du.c @@ -660,7 +660,8 @@ fill_mount_table (void) free (mnt_free->me_devname); free (mnt_free->me_mountdir); - free (mnt_free->me_type); + if (mnt_free->me_type_malloced) + free (mnt_free->me_type); free (mnt_free); } } -- 1.7.12.1.382.gb0576a6 From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 30 08:43:45 2012 Received: (at 12542-done) by debbugs.gnu.org; 30 Sep 2012 12:43:45 +0000 Received: from localhost ([127.0.0.1]:34119 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TIIs4-0003qJ-6X for submit@debbugs.gnu.org; Sun, 30 Sep 2012 08:43:45 -0400 Received: from mx.meyering.net ([88.168.87.75]:44339) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TIIs0-0003qA-SR for 12542-done@debbugs.gnu.org; Sun, 30 Sep 2012 08:43:41 -0400 Received: from rho.meyering.net (rho.meyering.net [127.0.0.1]) by rho.meyering.net (Acme Bit-Twister) with ESMTP id CF1716011A for <12542-done@debbugs.gnu.org>; Sun, 30 Sep 2012 14:43:18 +0200 (CEST) From: Jim Meyering To: 12542-done@debbugs.gnu.org Subject: Re: bug#12542: [PATCH] du: avoid abort on systems for which ->me_type is not malloc'd In-Reply-To: <871uhjy9lo.fsf@rho.meyering.net> (Jim Meyering's message of "Sun, 30 Sep 2012 14:32:35 +0200") References: <871uhjy9lo.fsf@rho.meyering.net> Date: Sun, 30 Sep 2012 14:43:18 +0200 Message-ID: <87vcevwujd.fsf@rho.meyering.net> Lines: 9 MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: 12542-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -4.0 (----) Jim Meyering wrote: > I noticed that "make check" was failing a fundamental test of du > on OpenBSD. It would have been trivial to diagnose with valgrind, > but that tool wasn't easily available on the affected system... I've just pushed the patch. A better one should come soon, in which I add a function in mountlist.c (declared in the .h file) by which to encapsulate this mount-entry freeing process. From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 30 12:12:40 2012 Received: (at 12542) by debbugs.gnu.org; 30 Sep 2012 16:12:40 +0000 Received: from localhost ([127.0.0.1]:34820 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TIM8F-0000Mb-Rv for submit@debbugs.gnu.org; Sun, 30 Sep 2012 12:12:40 -0400 Received: from moutng.kundenserver.de ([212.227.126.171]:56627) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TIM8D-0000MR-O3 for 12542@debbugs.gnu.org; Sun, 30 Sep 2012 12:12:38 -0400 Received: from [192.168.2.108] (p4FF73976.dip.t-dialin.net [79.247.57.118]) by mrelayeu.kundenserver.de (node=mrbap4) with ESMTP (Nemesis) id 0M4r65-1TdbMW1H6j-00zT48; Sun, 30 Sep 2012 18:12:13 +0200 Message-ID: <50686F5C.4050509@bernhard-voelker.de> Date: Sun, 30 Sep 2012 18:12:12 +0200 From: Bernhard Voelker User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120825 Thunderbird/15.0 MIME-Version: 1.0 To: 12542@debbugs.gnu.org, jim@meyering.net Subject: Re: bug#12542: [PATCH] du: avoid abort on systems for which ->me_type is not malloc'd References: <871uhjy9lo.fsf@rho.meyering.net> <87vcevwujd.fsf@rho.meyering.net> In-Reply-To: <87vcevwujd.fsf@rho.meyering.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Provags-ID: V02:K0:e4ViXIw31gCMS2/oPOIz3N6iieRZ6SNwfrycwMBRiXV +zdSjeOC2aTYM30y0bmB4TlP9WNr1h97kZWukW6V0sa8u4biLR ZhEVoLHo+riZGeY5nO6wh4iS39O7+I1ZfJlEbwr5NrZ7Z8rW9k DCePRBPj9PMeaeFFSoyFfP8e0+GcHIor3QQ5I2eEcGB3XrzxBa 9aCsxC5MIHqAG3k6s9nB2pUSgsOk7tiRijspMYpT3/VCor4xAl RQUH6mBclenELTmYZTBydYJuLVY8HHs7idrof5vovWmVx4Yt3V 4pw1WdRZYHUpoT8+o5C1PuybndoD41FVtB/cTJMkJ2jf98DcCM 2rVKv6EPWsthCBnrdMMhWRDdkO/CGXxmYOmLDbnXB X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 12542 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) On 09/30/2012 02:43 PM, Jim Meyering wrote: > A better one should come soon, in which I add > a function in mountlist.c (declared in the .h file) > by which to encapsulate this mount-entry freeing process. Good idea - also df doesn't free the mount_list: valgrind --leak-check=full --show-reachable=yes src/df / ==3835== Memcheck, a memory error detector ==3835== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. ==3835== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info ==3835== Command: src/df / ==3835== Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 12095032 7434584 4046048 65% / ==3835== ==3835== HEAP SUMMARY: ==3835== in use at exit: 3,013 bytes in 149 blocks ==3835== total heap usage: 657 allocs, 508 frees, 41,101 bytes allocated ==3835== ==3835== 144 bytes in 1 blocks are still reachable in loss record 1 of 5 ==3835== at 0x4C297CD: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==3835== by 0x40A1B8: xmalloc (xmalloc.c:43) ==3835== by 0x402F90: main (xalloc.h:113) ==3835== ==3835== 254 bytes in 37 blocks are still reachable in loss record 2 of 5 ==3835== at 0x4C297CD: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==3835== by 0x40A1B8: xmalloc (xmalloc.c:43) ==3835== by 0x40A2CB: xmemdup (xmalloc.c:115) ==3835== by 0x40AE8E: read_file_system_list (mountlist.c:420) ==3835== by 0x4028F8: main (df.c:1097) ==3835== ==3835== 292 bytes in 37 blocks are still reachable in loss record 3 of 5 ==3835== at 0x4C297CD: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==3835== by 0x40A1B8: xmalloc (xmalloc.c:43) ==3835== by 0x40A2CB: xmemdup (xmalloc.c:115) ==3835== by 0x40AE75: read_file_system_list (mountlist.c:418) ==3835== by 0x4028F8: main (df.c:1097) ==3835== ==3835== 547 bytes in 37 blocks are still reachable in loss record 4 of 5 ==3835== at 0x4C297CD: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==3835== by 0x40A1B8: xmalloc (xmalloc.c:43) ==3835== by 0x40A2CB: xmemdup (xmalloc.c:115) ==3835== by 0x40AE81: read_file_system_list (mountlist.c:419) ==3835== by 0x4028F8: main (df.c:1097) ==3835== ==3835== 1,776 bytes in 37 blocks are still reachable in loss record 5 of 5 ==3835== at 0x4C297CD: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==3835== by 0x40A1B8: xmalloc (xmalloc.c:43) ==3835== by 0x40AE69: read_file_system_list (mountlist.c:417) ==3835== by 0x4028F8: main (df.c:1097) ==3835== ==3835== LEAK SUMMARY: ==3835== definitely lost: 0 bytes in 0 blocks ==3835== indirectly lost: 0 bytes in 0 blocks ==3835== possibly lost: 0 bytes in 0 blocks ==3835== still reachable: 3,013 bytes in 149 blocks ==3835== suppressed: 0 bytes in 0 blocks ==3835== ==3835== For counts of detected and suppressed errors, rerun with: -v ==3835== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 6 from 6) The first one can be covered by "IF_LINT ( free (columns));", but the others come from calling read_file_system_list(). Free()ing the memory should of course be guarded by IF_LINT, too. Have a nice day, Berny From unknown Sat Aug 09 09:35:20 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 29 Oct 2012 11:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator