Subject: O_NOACCESS opens?
To: None <tech-kern@netbsd.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-kern
Date: 05/31/2003 01:51:28
I'd like to be able to open(2) for neither reading nor writing.

Why I want to: I want to save and restore my current directory by
opening "." before changing and then fchdir(2)ing back afterwards.
But, even though my current directory can be a directory I have only
execute permission on, I can't do this with such a directory because I
can't open it!

Maybe O_EXONLY, or, since there's no fexecve() and thus "execute-only
access" makes little sense on a file descriptor[%], maybe O_NOACCESS
and leave the execute-access check up to fchdir(2) as now?  It seems to
make some sense to me to perform this check at open() time, though,
since after all the execute-access check is done at chdir/fchdir time,
and removing the execute bit doesn't boot the process out of the
directory.

[%] But maybe that would permit mmap(PROT_EXEC) without permitting
    either mmap(PROT_READ) or mmap(PROT_WRITE)?  (Though I think some
    architectures don't support such memory....)

Thoughts?

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       mouse@rodents.montreal.qc.ca
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B