From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24546 invoked by alias); 8 Mar 2011 20:38:01 -0000 Received: (qmail 24528 invoked by uid 22791); 8 Mar 2011 20:38:00 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SHORT_BODY,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp-outbound-2.vmware.com (HELO smtp-outbound-2.vmware.com) (65.115.85.73) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 08 Mar 2011 20:37:56 +0000 Received: from mailhost4.vmware.com (mailhost4.vmware.com [10.16.67.124]) by smtp-outbound-2.vmware.com (Postfix) with ESMTP id 0231C1F00A for ; Tue, 8 Mar 2011 12:37:55 -0800 (PST) Received: from msnyder-server.eng.vmware.com (promd-2s-dhcp138.eng.vmware.com [10.20.124.138]) by mailhost4.vmware.com (Postfix) with ESMTP id EB85EC9FA5 for ; Tue, 8 Mar 2011 12:37:54 -0800 (PST) Message-ID: <4D7693A2.801@vmware.com> Date: Tue, 08 Mar 2011 20:38:00 -0000 From: Michael Snyder User-Agent: Thunderbird 2.0.0.24 (X11/20101201) MIME-Version: 1.0 To: "binutils@sourceware.org" Subject: [RFA] ar.c (delete_members): Plug memory leak. Content-Type: multipart/mixed; boundary="------------010307070503040909060604" Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org X-SW-Source: 2011-03/txt/msg00158.txt.bz2 This is a multi-part message in MIME format. --------------010307070503040909060604 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 5 OK? --------------010307070503040909060604 Content-Type: text/plain; name="ar5.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="ar5.txt" Content-length: 1153 2011-03-08 Michael Snyder * ar.c (delete_members): Plug memory leak. Index: ar.c =================================================================== RCS file: /cvs/src/src/binutils/ar.c,v retrieving revision 1.72 diff -u -p -r1.72 ar.c --- ar.c 8 Dec 2010 05:05:30 -0000 1.72 +++ ar.c 8 Mar 2011 20:35:36 -0000 @@ -1117,6 +1121,7 @@ delete_members (bfd *arch, char **files_ bfd_boolean found; bfd_boolean something_changed = FALSE; int match_count; + char *tmp = NULL; for (; *files_to_delete != NULL; ++files_to_delete) { @@ -1138,8 +1143,9 @@ delete_members (bfd *arch, char **files_ current_ptr_ptr = &(arch->archive_next); while (*current_ptr_ptr) { - if (FILENAME_CMP (normalize (*files_to_delete, arch), - (*current_ptr_ptr)->filename) == 0) + free (tmp); + tmp = normalize (*files_to_delete, arch); + if (FILENAME_CMP (tmp, (*current_ptr_ptr)->filename) == 0) { ++match_count; if (counted_name_mode @@ -1176,6 +1182,7 @@ delete_members (bfd *arch, char **files_ write_archive (arch); else output_filename = NULL; + free (tmp); } --------------010307070503040909060604--