提交 6f1c1fe9 编写于 作者: R Rich Felker

ignore access mode bits of flags in mkostemps and functions that use it

per the text accepted for inclusion in POSIX, behavior is unspecified
when any of the access mode bits are set. since it's impossible to
consistently report this usage error (O_RDONLY could not be detected
since its value happens to be zero), the most consistent way to handle
them is just to ignore them.

previously, if a caller erroneously passed O_WRONLY, the resulting
access mode would be O_WRONLY|O_RDWR, which has the value 3, and this
resulted in a file descriptor which rejects both read and write
attempts when it is subsequently used.
上级 dccbf4c8
......@@ -15,6 +15,7 @@ int __mkostemps(char *template, int len, int flags)
return -1;
}
flags -= flags & O_ACCMODE;
int fd, retries = 100;
do {
__randname(template+l-len-6);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册