Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 08 Aug 2017 11:13:41 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-doc@FreeBSD.org
Subject:   [Bug 221331] [PATCH] update for unlink(2) manpage
Message-ID:  <bug-221331-9@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D221331

            Bug ID: 221331
           Summary: [PATCH] update for unlink(2) manpage
           Product: Documentation
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Keywords: patch
          Severity: Affects Only Me
          Priority: ---
         Component: Documentation
          Assignee: freebsd-doc@FreeBSD.org
          Reporter: fnoyanisi@yahoo.com
          Keywords: patch

Created attachment 185149
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D185149&action=
=3Dedit
patch for the unlink(2) man page update

unlink(2) manpage states both EISDIR and EPERM are returned if the user
attempts to remove a directory.=20

unlink(2) function calls kern_unlinkat(), which does not return EISDIR in a=
ny
case. [1]

Also, POSIX standard states that EPERM should be returned when unlinking a
directory and EISDIR is only used by Linux Standard Base (LSB).[1]

As the proof of concept, the code below shows only EPERM is returned while
attempting to unlink a directory;

~/code/test/unlink_test % ls -l
total 40
drwxr-xr-x  2 fnoyanisi  fnoyanisi   512 Aug  8 22:00 dummy/
-rwxr-xr-x  1 fnoyanisi  fnoyanisi  9135 Aug  8 22:03 unlink_test*
-rw-r--r--  1 fnoyanisi  fnoyanisi   222 Aug  8 22:25 unlink_test.c
~/code/test/unlink_test % cat unlink_test.c=20
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>

int main(int argc, char **argv){

    if (unlinkat(argv[1])!=3D0)
        printf("Error %d : %s\n",errno, strerror(errno));

    return 0;
}
~/code/test/unlink_test % ./unlink_test dummy
Error 1 : Operation not permitted
~/code/test/unlink_test %=20

With the attached patch file, the line which is in the ERRORS section and
states that [EISDIR] is returned by unlink(2) when unlinking a directory is
removed from the manual page.

unlink.2.fni -> working copy
unlink.2 -> unlink(2) manpage from revision 321776

Diff file was generated with the command below
diff -u unlink.2 unlink.2.fni > unlink.2.diff

Subversion revision details for the original unlink(2) manpage

/usr/src % svn info=20=20=20=20=20=20=20
Path: .
Working Copy Root Path: /usr/src
URL: svn://svn.freebsd.org/base/release/11.1.0
Relative URL: ^/release/11.1.0
Repository Root: svn://svn.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 321776
Node Kind: directory
Schedule: normal
Last Changed Author: gjb
Last Changed Rev: 321354
Last Changed Date: 2017-07-22 08:55:38 +1200 (Sat, 22 Jul 2017)

[1]
https://svnweb.freebsd.org/base/release/11.0.1/sys/kern/vfs_syscalls.c?revi=
sion=3D306421&view=3Dmarkup#l1728
[2] http://pubs.opengroup.org/onlinepubs/9699919799/

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-221331-9>