From owner-svn-src-projects@FreeBSD.ORG Wed Jan 9 00:22:54 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 7ED3C795; Wed, 9 Jan 2013 00:22:54 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 678E8767; Wed, 9 Jan 2013 00:22:54 +0000 (UTC) Received: from svn.freebsd.org (svn.FreeBSD.org [8.8.178.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r090MsqO062138; Wed, 9 Jan 2013 00:22:54 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r090MsSh062137; Wed, 9 Jan 2013 00:22:54 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201301090022.r090MsSh062137@svn.freebsd.org> From: Brooks Davis Date: Wed, 9 Jan 2013 00:22:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245198 - projects/mtree/usr.bin/xinstall X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jan 2013 00:22:54 -0000 Author: brooks Date: Wed Jan 9 00:22:53 2013 New Revision: 245198 URL: http://svnweb.freebsd.org/changeset/base/245198 Log: When we're making symbolic links and the target is a broken symlink then unlink it rather than trying to link through it since that doesn't work. Modified: projects/mtree/usr.bin/xinstall/xinstall.c Modified: projects/mtree/usr.bin/xinstall/xinstall.c ============================================================================== --- projects/mtree/usr.bin/xinstall/xinstall.c Wed Jan 9 00:01:26 2013 (r245197) +++ projects/mtree/usr.bin/xinstall/xinstall.c Wed Jan 9 00:22:53 2013 (r245198) @@ -726,7 +726,9 @@ install(const char *from_name, const cha devnull = 1; } - target = stat(to_name, &to_sb) == 0; + target = (stat(to_name, &to_sb) == 0); + if (!target && dolink & LN_SYMBOLIC && errno == ELOOP) + target = (lstat(to_name, &to_sb) == 0); if (dolink) { if (target) {