From owner-cvs-all@FreeBSD.ORG Sat Jul 5 01:48:49 2008 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9C0111065671; Sat, 5 Jul 2008 01:48:49 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 874F38FC17; Sat, 5 Jul 2008 01:48:49 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m651mnL0017554; Sat, 5 Jul 2008 01:48:49 GMT (envelope-from kientzle@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m651mnEU017553; Sat, 5 Jul 2008 01:48:49 GMT (envelope-from kientzle@repoman.freebsd.org) Message-Id: <200807050148.m651mnEU017553@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to kientzle@repoman.freebsd.org using -f From: Tim Kientzle Date: Sat, 5 Jul 2008 01:48:33 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/lib/libarchive archive_write_disk.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Jul 2008 01:48:49 -0000 kientzle 2008-07-05 01:48:33 UTC FreeBSD src repository Modified files: lib/libarchive archive_write_disk.c Log: SVN rev 180270 on 2008-07-05 01:48:33Z by kientzle When ARCHIVE_EXTRACT_PERM is requested (e.g., by "tar -p"), always schedule a chmod() fixup for directories. In particular, this fixes sgid handling on systems where the sgid bit is inherited from the parent directory (which means that the actual mode of the dir does not match the mode used in the mkdir() system call. It may be possible to tighten this condition a bit. In working through this, I also found a few other places where it looks like we can avoid a redundant syscall or two. I've commented those here but not yet tried to address them. Revision Changes Path 1.28 +9 -5 src/lib/libarchive/archive_write_disk.c