Skip site navigation (1)Skip section navigation (2)
Date:      4 Nov 2001 01:08:10 -0000
From:      Jos Backus <josb@cncdsl.com>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/31742: open("/dev/null", O_TRUNC) broken on -current
Message-ID:  <20011104010810.34035.qmail@lizzy.bugworks.com>

next in thread | raw e-mail | index | archive | help

>Number:         31742
>Category:       kern
>Synopsis:       open("/dev/null", O_TRUNC) broken on -current
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Nov 03 17:10:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Jos Backus
>Release:        FreeBSD 5.0-CURRENT i386
>Organization:
none
>Environment:
System: FreeBSD lizzy.bugworks.com 5.0-CURRENT FreeBSD 5.0-CURRENT #17: Sat Nov 3 15:04:31 PST 2001 jos@lizzy.bugworks.com:/disk0/usr/obj/usr/src/sys/LIZZY i386

lizzy:/tmp% ls -ld /dev
dr-xr-xr-x  4 root  wheel  0 Nov  3 07:15 /dev
lizzy:/tmp% ls -l /dev/null 
crw-rw-rw-  1 root  wheel    2,   2 Nov  3 17:04 /dev/null
lizzy:/tmp% 

>Description:

    open("/dev/null", O_TRUNC) fails with EPERM.

>How-To-Repeat:

lizzy:/tmp% cat c.c
#include <stdio.h>
#include <fcntl.h>

int
main(int argc, char *argv[])
{
    char *s = "string";
    int fd;
    int flag = 0;

    if (argc > 1) flag = O_TRUNC;
    if ((fd = open("/dev/null", O_CREAT|O_WRONLY|flag)) == -1)
        err(1, "open");
    write(fd, s, strlen(s));
    close(fd);
    exit(0);
}
lizzy:/tmp% make c
cc -O -pipe -march=pentiumpro     c.c  -o c
lizzy:/tmp% ./c
lizzy:/tmp% ./c 1
c: open: Operation not permitted
lizzy:/tmp% 

>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




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