From owner-freebsd-bugs@FreeBSD.ORG Wed Apr 1 21:59:25 2015 Return-Path: Delivered-To: freebsd-bugs@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 125B8DCF for ; Wed, 1 Apr 2015 21:59:25 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id ED15BFEB for ; Wed, 1 Apr 2015 21:59:24 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t31LxOAU028471 for ; Wed, 1 Apr 2015 21:59:24 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 196724] fts(3) returns invalid fts_info for edge case Date: Wed, 01 Apr 2015 21:59:25 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: bin X-Bugzilla-Version: 11.0-CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: jilles@FreeBSD.org X-Bugzilla-Status: Open X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cc bug_status Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Apr 2015 21:59:25 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=196724 Jilles Tjoelker changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jilles@FreeBSD.org Status|New |Open --- Comment #1 from Jilles Tjoelker --- When following symlinks, fts returns FTS_SLNONE when stat() fails, but a subsequent lstat() succeeds (in recent versions fstatat() without and with AT_SYMLINK_NOFOLLOW). This incorrectly triggers if a filename exists to be read from the directory, is deleted before the stat and created again after the stat. Clearly, the code should only return FTS_SLNONE if S_ISLNK(sbp->st_mode). What it should do otherwise is less clear. We could go back to stat() and try some number of times for stat() and lstat() to become consistent, or we could return FTS_NS immediately. -- You are receiving this mail because: You are the assignee for the bug.