NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/47439: open() does not check for invalid flags
>Number: 47439
>Category: kern
>Synopsis: open() does not check for invalid flags
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Jan 12 22:25:00 +0000 2013
>Originator: David A. Holland
>Release: NetBSD 6.99.10 (20120731) also 6.99.16 (20130112)
>Organization:
>Environment:
System: NetBSD valkyrie 6.99.10 NetBSD 6.99.10 (VALKYRIE) #11: Sun Dec 9
20:42:51 EST 2012 root@valkyrie:/usr/src/sys/arch/amd64/compile/VALKYRIE amd64
Architecture: x86_64
Machine: amd64
>Description:
open() does not reject invalid flags. It ignores them, which is
reasonably harmless (especially since there aren't that many unused
bits in that flags word) but is silly/stupid.
It does not appear to be possible to set the internal kernel-only flag
bits as open_setfp() ANDs with FMASK.
>How-To-Repeat:
Code reading, plus:
#include <unistd.h>
#include <fcntl.h>
#include <err.h>
#define O_STUPID 0x30000000 /* always make sure this is really invalid */
int main() {
int fd;
fd = open("testfile", O_CREAT|O_TRUNC|O_WRONLY|O_STUPID, 0664);
if (fd < 0) {
warn("O_STUPID");
}
else {
warnx("O_STUPID was accepted");
}
return 0;
}
>Fix:
Straightforward.
Home |
Main Index |
Thread Index |
Old Index