From owner-svn-src-head@FreeBSD.ORG Tue Dec 29 05:52:13 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 E2FE61065692; Tue, 29 Dec 2009 05:52:13 +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 B64748FC14; Tue, 29 Dec 2009 05:52:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBT5qDHK012698; Tue, 29 Dec 2009 05:52:13 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBT5qDeQ012696; Tue, 29 Dec 2009 05:52:13 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <200912290552.nBT5qDeQ012696@svn.freebsd.org> From: Tim Kientzle Date: Tue, 29 Dec 2009 05:52:13 +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: r201165 - 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: Tue, 29 Dec 2009 05:52:14 -0000 Author: kientzle Date: Tue Dec 29 05:52:13 2009 New Revision: 201165 URL: http://svn.freebsd.org/changeset/base/201165 Log: Minor style fixes plus a fix for an obscure crash on certain malformed mtree files. Modified: head/lib/libarchive/archive_read_support_format_mtree.c Modified: head/lib/libarchive/archive_read_support_format_mtree.c ============================================================================== --- head/lib/libarchive/archive_read_support_format_mtree.c Tue Dec 29 05:51:24 2009 (r201164) +++ head/lib/libarchive/archive_read_support_format_mtree.c Tue Dec 29 05:52:13 2009 (r201165) @@ -196,7 +196,7 @@ mtree_bid(struct archive_read *a) return (-1); if (strncmp(p, signature, strlen(signature)) == 0) - return (8 * strlen(signature)); + return (8 * (int)strlen(signature)); return (0); } @@ -398,7 +398,6 @@ read_mtree(struct archive_read *a, struc global = NULL; last_entry = NULL; - r = ARCHIVE_OK; for (counter = 1; ; ++counter) { len = readline(a, mtree, &p, 256); @@ -588,8 +587,7 @@ parse_file(struct archive_read *a, struc if (archive_entry_filetype(entry) == AE_IFREG || archive_entry_filetype(entry) == AE_IFDIR) { - mtree->fd = open(path, - O_RDONLY | O_BINARY); + mtree->fd = open(path, O_RDONLY | O_BINARY); if (mtree->fd == -1 && (errno != ENOENT || archive_strlen(&mtree->contents_name) > 0)) { @@ -1038,11 +1036,7 @@ parse_escapes(char *src, struct mtree_en char *dest = src; char c; - /* - * The current directory is somewhat special, it should be archived - * only once as it will confuse extraction otherwise. - */ - if (strcmp(src, ".") == 0) + if (mentry != NULL && strcmp(src, ".") == 0) mentry->full = 1; while (*src != '\0') { @@ -1161,7 +1155,7 @@ mtree_atol10(char **p) digit = **p - '0'; while (digit >= 0 && digit < base) { if (l > limit || (l == limit && digit > last_digit_limit)) { - l = UINT64_MAX; /* Truncate on overflow. */ + l = INT64_MAX; /* Truncate on overflow. */ break; } l = (l * base) + digit; @@ -1202,7 +1196,7 @@ mtree_atol16(char **p) digit = -1; while (digit >= 0 && digit < base) { if (l > limit || (l == limit && digit > last_digit_limit)) { - l = UINT64_MAX; /* Truncate on overflow. */ + l = INT64_MAX; /* Truncate on overflow. */ break; } l = (l * base) + digit;