mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-06-21 15:43:21 +02:00
82c6dd2047
Fanotify used to refuse to report pidfds for reaped tasks by applying a pid_has_task() check before calling pidfd_prepare(). This prevented userspace from obtaining information about the task. Register the event pid with pidfs when creating the fanotify event if pidfd reporting was requested, so pidfd_prepare() can later create a pidfd for the reaped task. Suggested-by: Christian Brauner <brauner@kernel.org> Link: https://lore.kernel.org/linux-fsdevel/20260528-schmuckvoll-heilen-garen-be77b4208671@brauner/ Signed-off-by: AnonymeMeow <anonymemeow@gmail.com> Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org> Link: https://patch.msgid.link/20260607003343.425939-3-anonymemeow@gmail.com Signed-off-by: Jan Kara <jack@suse.cz>
37 lines
979 B
C
37 lines
979 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _LINUX_PID_FS_H
|
|
#define _LINUX_PID_FS_H
|
|
|
|
#include <linux/gfp_types.h>
|
|
|
|
struct coredump_params;
|
|
|
|
struct file *pidfs_alloc_file(struct pid *pid, unsigned int flags);
|
|
void __init pidfs_init(void);
|
|
void pidfs_prepare_pid(struct pid *pid);
|
|
int pidfs_add_pid(struct pid *pid);
|
|
void pidfs_remove_pid(struct pid *pid);
|
|
void pidfs_exit(struct task_struct *tsk);
|
|
#ifdef CONFIG_COREDUMP
|
|
void pidfs_coredump(const struct coredump_params *cprm);
|
|
#endif
|
|
extern const struct dentry_operations pidfs_dentry_operations;
|
|
int pidfs_register_pid_gfp(struct pid *pid, gfp_t gfp);
|
|
|
|
/**
|
|
* pidfs_register_pid - register a struct pid in pidfs
|
|
* @pid: pid to pin
|
|
*
|
|
* Register a struct pid in pidfs.
|
|
*
|
|
* Return: On success zero, on error a negative error code is returned.
|
|
*/
|
|
static inline int pidfs_register_pid(struct pid *pid)
|
|
{
|
|
return pidfs_register_pid_gfp(pid, GFP_KERNEL);
|
|
}
|
|
|
|
void pidfs_free_pid(struct pid *pid);
|
|
|
|
#endif /* _LINUX_PID_FS_H */
|