From 9814cb624dba6a59b53dc85ac412ae6e4ec3e3a7 Mon Sep 17 00:00:00 2001 From: "Liam J. Foy" Date: Tue, 1 Mar 2005 20:54:53 +0000 Subject: [PATCH] - Back out rev 1.6 noticed by Matt Dillon. However, still keep the use of errc() Problem: http://leaf.dragonflybsd.org/mailarchive/commits/2005-03/msg00009.html --- bin/ln/ln.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/bin/ln/ln.c b/bin/ln/ln.c index 0eed29eb6b..2340822dd8 100644 --- a/bin/ln/ln.c +++ b/bin/ln/ln.c @@ -33,7 +33,7 @@ * @(#) Copyright (c) 1987, 1993, 1994 The Regents of the University of California. All rights reserved. * @(#)ln.c 8.2 (Berkeley) 3/31/94 * $FreeBSD: src/bin/ln/ln.c,v 1.15.2.4 2002/07/12 07:34:38 tjr Exp $ - * $DragonFly: src/bin/ln/ln.c,v 1.7 2005/02/28 19:42:12 liamfoy Exp $ + * $DragonFly: src/bin/ln/ln.c,v 1.8 2005/03/01 20:54:53 liamfoy Exp $ */ #include @@ -129,17 +129,15 @@ main(int argc, char *argv[]) } /* ln target1 target2 directory */ sourcedir = argv[argc - 1]; - - if (lstat(sourcedir, &sb)) - err(1, "%s", sourcedir); - - if (hflag && S_ISLNK(sb.st_mode)) { + if (hflag && lstat(sourcedir, &sb) == 0 && S_ISLNK(sb.st_mode)) { /* * We were asked not to follow symlinks, but found one at * the target--simulate "not a directory" error */ errc(1, ENOTDIR, "%s", sourcedir); } + if (stat(sourcedir, &sb)) + err(1, "%s", sourcedir); if (!S_ISDIR(sb.st_mode)) usage(); for (exitval = 0; *argv != sourcedir; ++argv) -- 2.28.0