|
@@ -567,6 +567,9 @@ struct swap_info_struct;
|
|
|
* @p.
|
|
|
* @p contains the task_struct for the process.
|
|
|
* Return 0 if permission is granted.
|
|
|
+ * @task_getsecid:
|
|
|
+ * Retrieve the security identifier of the process @p.
|
|
|
+ * @p contains the task_struct for the process and place is into @secid.
|
|
|
* @task_setgroups:
|
|
|
* Check permission before setting the supplementary group set of the
|
|
|
* current process.
|
|
@@ -615,6 +618,7 @@ struct swap_info_struct;
|
|
|
* @p contains the task_struct for process.
|
|
|
* @info contains the signal information.
|
|
|
* @sig contains the signal value.
|
|
|
+ * @secid contains the sid of the process where the signal originated
|
|
|
* Return 0 if permission is granted.
|
|
|
* @task_wait:
|
|
|
* Check permission before allowing a process to reap a child process @p
|
|
@@ -1219,6 +1223,7 @@ struct security_operations {
|
|
|
int (*task_setpgid) (struct task_struct * p, pid_t pgid);
|
|
|
int (*task_getpgid) (struct task_struct * p);
|
|
|
int (*task_getsid) (struct task_struct * p);
|
|
|
+ void (*task_getsecid) (struct task_struct * p, u32 * secid);
|
|
|
int (*task_setgroups) (struct group_info *group_info);
|
|
|
int (*task_setnice) (struct task_struct * p, int nice);
|
|
|
int (*task_setioprio) (struct task_struct * p, int ioprio);
|
|
@@ -1228,7 +1233,7 @@ struct security_operations {
|
|
|
int (*task_getscheduler) (struct task_struct * p);
|
|
|
int (*task_movememory) (struct task_struct * p);
|
|
|
int (*task_kill) (struct task_struct * p,
|
|
|
- struct siginfo * info, int sig);
|
|
|
+ struct siginfo * info, int sig, u32 secid);
|
|
|
int (*task_wait) (struct task_struct * p);
|
|
|
int (*task_prctl) (int option, unsigned long arg2,
|
|
|
unsigned long arg3, unsigned long arg4,
|
|
@@ -1839,6 +1844,11 @@ static inline int security_task_getsid (struct task_struct *p)
|
|
|
return security_ops->task_getsid (p);
|
|
|
}
|
|
|
|
|
|
+static inline void security_task_getsecid (struct task_struct *p, u32 *secid)
|
|
|
+{
|
|
|
+ security_ops->task_getsecid (p, secid);
|
|
|
+}
|
|
|
+
|
|
|
static inline int security_task_setgroups (struct group_info *group_info)
|
|
|
{
|
|
|
return security_ops->task_setgroups (group_info);
|
|
@@ -1878,9 +1888,10 @@ static inline int security_task_movememory (struct task_struct *p)
|
|
|
}
|
|
|
|
|
|
static inline int security_task_kill (struct task_struct *p,
|
|
|
- struct siginfo *info, int sig)
|
|
|
+ struct siginfo *info, int sig,
|
|
|
+ u32 secid)
|
|
|
{
|
|
|
- return security_ops->task_kill (p, info, sig);
|
|
|
+ return security_ops->task_kill (p, info, sig, secid);
|
|
|
}
|
|
|
|
|
|
static inline int security_task_wait (struct task_struct *p)
|
|
@@ -2491,6 +2502,9 @@ static inline int security_task_getsid (struct task_struct *p)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static inline void security_task_getsecid (struct task_struct *p, u32 *secid)
|
|
|
+{ }
|
|
|
+
|
|
|
static inline int security_task_setgroups (struct group_info *group_info)
|
|
|
{
|
|
|
return 0;
|
|
@@ -2530,7 +2544,8 @@ static inline int security_task_movememory (struct task_struct *p)
|
|
|
}
|
|
|
|
|
|
static inline int security_task_kill (struct task_struct *p,
|
|
|
- struct siginfo *info, int sig)
|
|
|
+ struct siginfo *info, int sig,
|
|
|
+ u32 secid)
|
|
|
{
|
|
|
return 0;
|
|
|
}
|