Browse Source

fix fd leak race (missing O_CLOEXEC) in fchmodat

master
Rich Felker 11 years ago
parent
commit
2736eb6caa
  1. 2
      src/stat/fchmodat.c

2
src/stat/fchmodat.c

@ -21,7 +21,7 @@ int fchmodat(int fd, const char *path, mode_t mode, int flag)
if (S_ISLNK(st.st_mode))
return __syscall_ret(-EOPNOTSUPP);
if ((fd2 = __syscall(SYS_openat, fd, path, O_RDONLY|O_PATH|O_NOFOLLOW|O_NOCTTY)) < 0) {
if ((fd2 = __syscall(SYS_openat, fd, path, O_RDONLY|O_PATH|O_NOFOLLOW|O_NOCTTY|O_CLOEXEC)) < 0) {
if (fd2 == -ELOOP)
return __syscall_ret(-EOPNOTSUPP);
return __syscall_ret(fd2);

Loading…
Cancel
Save