Loading security/selinux/hooks.c +15 −32 Original line number Diff line number Diff line Loading @@ -2126,8 +2126,6 @@ static inline void flush_unauthorized_files(const struct cred *cred, spin_lock(&files->file_lock); for (;;) { unsigned long set, i; int fd; j++; i = j * BITS_PER_LONG; fdt = files_fdtable(files); Loading @@ -2138,39 +2136,24 @@ static inline void flush_unauthorized_files(const struct cred *cred, continue; spin_unlock(&files->file_lock); for ( ; set ; i++, set >>= 1) { if (set & 1) { if (!(set & 1)) continue; file = fget(i); if (!file) continue; if (file_has_perm(cred, file, file_to_av(file))) { sys_close(i); fd = get_unused_fd(); if (fd != i) { if (fd >= 0) put_unused_fd(fd); fput(file); continue; } if (file_has_perm(cred, file, file_to_av(file))) { if (devnull) { get_file(devnull); } else { devnull = dentry_open( &selinux_null, devnull = dentry_open(&selinux_null, O_RDWR, cred); if (IS_ERR(devnull)) { if (IS_ERR(devnull)) devnull = NULL; put_unused_fd(fd); fput(file); continue; } } fd_install(fd, devnull); replace_fd(i, devnull, 0); } fput(file); } } spin_lock(&files->file_lock); } Loading Loading
security/selinux/hooks.c +15 −32 Original line number Diff line number Diff line Loading @@ -2126,8 +2126,6 @@ static inline void flush_unauthorized_files(const struct cred *cred, spin_lock(&files->file_lock); for (;;) { unsigned long set, i; int fd; j++; i = j * BITS_PER_LONG; fdt = files_fdtable(files); Loading @@ -2138,39 +2136,24 @@ static inline void flush_unauthorized_files(const struct cred *cred, continue; spin_unlock(&files->file_lock); for ( ; set ; i++, set >>= 1) { if (set & 1) { if (!(set & 1)) continue; file = fget(i); if (!file) continue; if (file_has_perm(cred, file, file_to_av(file))) { sys_close(i); fd = get_unused_fd(); if (fd != i) { if (fd >= 0) put_unused_fd(fd); fput(file); continue; } if (file_has_perm(cred, file, file_to_av(file))) { if (devnull) { get_file(devnull); } else { devnull = dentry_open( &selinux_null, devnull = dentry_open(&selinux_null, O_RDWR, cred); if (IS_ERR(devnull)) { if (IS_ERR(devnull)) devnull = NULL; put_unused_fd(fd); fput(file); continue; } } fd_install(fd, devnull); replace_fd(i, devnull, 0); } fput(file); } } spin_lock(&files->file_lock); } Loading