chase: mask away CHASE_MUST_BE_REGULAR in chase_openat()
We pin the parent directory of the specified directory via CHASE_PARENT, but if we do that we really should mask off CHASE_MUST_BE_REGULAR, because a parent dir of course is a dir, nothing else. The CHASE_MUST_BE_REGULAR after all should apply to the file created in that dir, not to the parent.
This commit is contained in:
+2
-2
@@ -796,7 +796,7 @@ int chase_and_open(
|
||||
/* xopen_flags = */ 0,
|
||||
MODE_INVALID);
|
||||
|
||||
r = chase(path, root, CHASE_PARENT|chase_flags, &p, &path_fd);
|
||||
r = chase(path, root, (CHASE_PARENT|chase_flags)&~CHASE_MUST_BE_REGULAR, &p, &path_fd);
|
||||
if (r < 0)
|
||||
return r;
|
||||
assert(path_fd >= 0);
|
||||
@@ -1001,7 +1001,7 @@ int chase_and_openat(
|
||||
/* xopen_flags = */ 0,
|
||||
MODE_INVALID);
|
||||
|
||||
r = chaseat(dir_fd, path, chase_flags|CHASE_PARENT, &p, &path_fd);
|
||||
r = chaseat(dir_fd, path, (chase_flags|CHASE_PARENT)&~CHASE_MUST_BE_REGULAR, &p, &path_fd);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user