Anonymous | Login | 2024-04-26 19:16 UTC |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Simple Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||
ID | Category | Severity | Type | Date Submitted | Last Update | ||
0000817 | [1003.1(2013)/Issue7+TC1] System Interfaces | Objection | Error | 2014-01-20 15:55 | 2019-06-10 08:54 | ||
Reporter | geoffclare | View Status | public | ||||
Assigned To | |||||||
Priority | normal | Resolution | Accepted | ||||
Status | Closed | ||||||
Name | Geoff Clare | ||||||
Organization | The Open Group | ||||||
User Reference | |||||||
Section | access,...,unlink | ||||||
Page Number | 565,...,2175 | ||||||
Line Number | 19587,...,69227 | ||||||
Interp Status | --- | ||||||
Final Accepted Text | |||||||
Summary | 0000817: O_SEARCH condition for *at() functions worded incorrectly | ||||||
Description |
All of the *at() functions contain requirements related to whether a directory file descriptor passed to the function "was opened with O_SEARCH". This is not the right condition when duplication or inheritance of file descriptors is considered. For example, if an fd is opened with O_SEARCH and then duplicated with dup(), the new fd returned by dup() does not meet the letter of the condition even though it has O_SEARCH as the access mode. The associated EACCES errors are also affected (and in the case of link() and mkdir() the EACCES error is missing). |
||||||
Desired Action |
At page 565 line 19587 section access page 660 line 22358 section chmod page 664 line 22527 section chown page 954 line 32215 section fstatat page 976 line 32925 section futimens page 1228 line 40805 section link page 1301 line 43040 section mkdir page 1307 line 43242 section mkfifo page 1313 line 43434 section mknod page 1394 line 46074 section open page 1764 line 56779 section readlink page 1798 line 57932 section rename page 2073 line 66152 section symlink page 2174 line 69186 section unlink change: If the file descriptor was opened without O_SEARCH, the function shall check whether directory searches are permitted using the current permissions of the directory underlying the file descriptor. If the file descriptor was opened with O_SEARCH, the function shall not perform the check.to: If the access mode of the open file description associated with the file descriptor is not O_SEARCH, the function shall check whether directory searches are permitted using the current permissions of the directory underlying the file descriptor. If the access mode is O_SEARCH, the function shall not perform the check. At page 566 line 19616 section access page 661 line 22388 section chmod page 665 line 22562 section chown page 955 line 32247 section fstatat page 977 line 32973 section futimens page 1308 line 43272 section mkfifo page 1312 line 43399 section mknod page 1395 line 46134 section open page 1765 line 56805 section readlink page 2074 line 66185 section symlink page 2175 line 69227 section unlink change: fd was not opened with O_SEARCH and ...to: The access mode of the open file description associated with fd is not O_SEARCH and ... After page 1229 line 40853 section link add: [EACCES]The access mode of the open file description associated with fd1 or fd2 is not O_SEARCH and the permissions of the directory underlying fd1 or fd2 respectively do not permit directory searches. After page 1302 line 43066 section mkdir add: [EACCES]The access mode of the open file description associated with fd is not O_SEARCH and the permissions of the directory underlying fd do not permit directory searches. At page 1799 line 57990 section rename change: oldfd or newfd was not opened with O_SEARCH and ...to: The access mode of the open file description associated with oldfd or newfd is not O_SEARCH and ... |
||||||
Tags | tc2-2008 | ||||||
Attached Files | |||||||
|
Notes | |
(0002109) shware_systems (reporter) 2014-01-20 19:22 |
I agree with this as being clearer in intent, but I think where the new phrasing has "is not O_SEARCH", the phrase "does not include the O_SEARCH flag" better expresses that the file description may have other O_* flags set too. Similarly, "includes O_SEARCH" instead of "is O_SEARCH". Just bare is or is not implies it's the only flag allowed to be set when testing against underlying permissions. |
(0002110) geoffclare (manager) 2014-01-21 09:52 |
Re: Note: 0002109, when a file descriptor is opened the access mode is set to O_EXEC, O_RDONLY, O_RDWR, O_SEARCH, or O_WRONLY. The other O_* macros that can be ORed into the oflag value passed to open() do not have any effect on the access mode (i.e. they have no bits in common with the O_ACCMODE mask). Therefore "the access mode is O_SEARCH" is the correct wording, and "the access mode includes O_SEARCH" does not make sense. |
Mantis 1.1.6[^] Copyright © 2000 - 2008 Mantis Group |