basic/chase-symlinks: add note that CHASE_WARN is not for PID 1

This should be enough to make us remember that constraint. A more heavy-weight
approach like renaming the option to CHASE_WARN_NSS_LOOKUP would be possible,
but it'd make the callers quite verbose and doesn't seem worth it.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2022-10-12 08:01:01 +02:00
parent 0a8720c7f0
commit 9154bd57db
2 changed files with 5 additions and 3 deletions
+3 -2
View File
@@ -125,11 +125,12 @@ int chase_symlinks(
*
* 4. With CHASE_SAFE: in this case the path must not contain unsafe transitions, i.e. transitions from
* unprivileged to privileged files or directories. In such cases the return value is -ENOLINK. If
* CHASE_WARN is also set, a warning describing the unsafe transition is emitted.
* CHASE_WARN is also set, a warning describing the unsafe transition is emitted. CHASE_WARN cannot
* be used in PID 1.
*
* 5. With CHASE_NO_AUTOFS: in this case if an autofs mount point is encountered, path normalization
* is aborted and -EREMOTE is returned. If CHASE_WARN is also set, a warning showing the path of
* the mount point is emitted.
* the mount point is emitted. CHASE_WARN cannot be used in PID 1.
*/
/* A root directory of "/" or "" is identical to none */
+2 -1
View File
@@ -15,7 +15,8 @@ typedef enum ChaseSymlinksFlags {
CHASE_STEP = 1 << 5, /* Just execute a single step of the normalization */
CHASE_NOFOLLOW = 1 << 6, /* Do not follow the path's right-most component. With ret_fd, when the path's
* right-most component refers to symlink, return O_PATH fd of the symlink. */
CHASE_WARN = 1 << 7, /* Emit an appropriate warning when an error is encountered */
CHASE_WARN = 1 << 7, /* Emit an appropriate warning when an error is encountered.
* Note: this may do an NSS lookup, hence this flag cannot be used in PID 1. */
} ChaseSymlinksFlags;
bool unsafe_transition(const struct stat *a, const struct stat *b);