From owner-svn-src-head@FreeBSD.ORG Thu Mar 5 18:38:37 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3CB87106564A; Thu, 5 Mar 2009 18:38:37 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2ADB98FC0C; Thu, 5 Mar 2009 18:38:37 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n25Icbwd096289; Thu, 5 Mar 2009 18:38:37 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n25IcbTo096288; Thu, 5 Mar 2009 18:38:37 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200903051838.n25IcbTo096288@svn.freebsd.org> From: Tim Kientzle Date: Thu, 5 Mar 2009 18:38:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r189419 - head/lib/libarchive X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Mar 2009 18:38:37 -0000 Author: kientzle Date: Thu Mar 5 18:38:36 2009 New Revision: 189419 URL: http://svn.freebsd.org/changeset/base/189419 Log: Merge r389 from libarchive.googlecode.com: Fix a memory leak in ISO9660 handler structure whenever a file entry has a nonsensical CE offset. Modified: head/lib/libarchive/archive_read_support_format_iso9660.c Modified: head/lib/libarchive/archive_read_support_format_iso9660.c ============================================================================== --- head/lib/libarchive/archive_read_support_format_iso9660.c Thu Mar 5 18:32:43 2009 (r189418) +++ head/lib/libarchive/archive_read_support_format_iso9660.c Thu Mar 5 18:38:36 2009 (r189419) @@ -414,8 +414,10 @@ archive_read_format_iso9660_read_header( /* Get the next entry that appears after the current offset. */ r = next_entry_seek(a, iso9660, &file); - if (r != ARCHIVE_OK) + if (r != ARCHIVE_OK) { + release_file(iso9660, file); return (r); + } iso9660->entry_bytes_remaining = file->size; iso9660->entry_sparse_offset = 0; /* Offset for sparse-file-aware clients. */ @@ -1093,6 +1095,9 @@ release_file(struct iso9660 *iso9660, st { struct file_info *parent; + if (file == NULL) + return; + if (file->refcount == 0) { parent = file->parent; archive_string_free(&file->name);