Subject: standards/11278: mkdir("nonexistent/") fails ENOENT
To: None <gnats-bugs@gnats.netbsd.org>
From: Klaus Klein <kleink@uni-trier.de>
List: netbsd-bugs
Date: 10/20/2000 02:07:08
>Number:         11278
>Category:       standards
>Synopsis:       mkdir("nonexistent/") fails ENOENT
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    standards-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Oct 20 02:07:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Klaus Klein
>Release:        today's
>Organization:
Frobozz Magic Standards Company
>Environment:
MI

>Description:
	Creating a non-existent directory using mkdir() fails ENOENT
	if the pathname passed to mkdir() has one or more trailing
	slashes.

	Quoting from the description of mkdir() in IEEE Std. 1003.1-90
	specification, ``The mkdir() function creates a new directory
	with name path.''

	Quoting from the definition of a Path Name, ``A path name may
	optionally containe on or more trailing slashes.''

	In other words, from the Standard's POV the path names
	"nonexistent" and "nonexistent/" are equivalent, and the
	mkdir() function must not fail for the latter while behaving
	correctly for the former.

	(This had been fixed sometime during the pre-1.4 development
	cycle but we have a regression here.)

>How-To-Repeat:
	Invoke the mkdir() function manually.  (Utilizing NetBSD's
	mkdir utility won't work as it strips trailing slashes from
	the path name in order to work around this bug.)

>Fix:
	None supplied.
>Release-Note:
>Audit-Trail:
>Unformatted: