diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2018-03-22 22:22:26 -0400 |
---|---|---|
committer | Eric W. Biederman <ebiederm@xmission.com> | 2018-03-22 22:22:26 -0400 |
commit | d8c6e8543294428426578d74dc7aaf121e762d58 (patch) | |
tree | 5a7fb08578f66f55f030e7fd1de237e5f756a847 /security/smack | |
parent | 7191adff2a5566efb139c79ea03eda3d0520d44a (diff) |
msg/security: Pass kern_ipc_perm not msg_queue into the msg_queue security hooks
All of the implementations of security hooks that take msg_queue only
access q_perm the struct kern_ipc_perm member. This means the
dependencies of the msg_queue security hooks can be simplified by
passing the kern_ipc_perm member of msg_queue.
Making this change will allow struct msg_queue to become private to
ipc/msg.c.
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Diffstat (limited to 'security/smack')
-rw-r--r-- | security/smack/smack_lsm.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c index a3398c7f32c9..d960c2ea8d79 100644 --- a/security/smack/smack_lsm.c +++ b/security/smack/smack_lsm.c | |||
@@ -3210,9 +3210,9 @@ static int smack_sem_semop(struct kern_ipc_perm *sma, struct sembuf *sops, | |||
3210 | * | 3210 | * |
3211 | * Returns 0 | 3211 | * Returns 0 |
3212 | */ | 3212 | */ |
3213 | static int smack_msg_queue_alloc_security(struct msg_queue *msq) | 3213 | static int smack_msg_queue_alloc_security(struct kern_ipc_perm *msq) |
3214 | { | 3214 | { |
3215 | struct kern_ipc_perm *kisp = &msq->q_perm; | 3215 | struct kern_ipc_perm *kisp = msq; |
3216 | struct smack_known *skp = smk_of_current(); | 3216 | struct smack_known *skp = smk_of_current(); |
3217 | 3217 | ||
3218 | kisp->security = skp; | 3218 | kisp->security = skp; |
@@ -3225,9 +3225,9 @@ static int smack_msg_queue_alloc_security(struct msg_queue *msq) | |||
3225 | * | 3225 | * |
3226 | * Clears the blob pointer | 3226 | * Clears the blob pointer |
3227 | */ | 3227 | */ |
3228 | static void smack_msg_queue_free_security(struct msg_queue *msq) | 3228 | static void smack_msg_queue_free_security(struct kern_ipc_perm *msq) |
3229 | { | 3229 | { |
3230 | struct kern_ipc_perm *kisp = &msq->q_perm; | 3230 | struct kern_ipc_perm *kisp = msq; |
3231 | 3231 | ||
3232 | kisp->security = NULL; | 3232 | kisp->security = NULL; |
3233 | } | 3233 | } |
@@ -3238,9 +3238,9 @@ static void smack_msg_queue_free_security(struct msg_queue *msq) | |||
3238 | * | 3238 | * |
3239 | * Returns a pointer to the smack label entry | 3239 | * Returns a pointer to the smack label entry |
3240 | */ | 3240 | */ |
3241 | static struct smack_known *smack_of_msq(struct msg_queue *msq) | 3241 | static struct smack_known *smack_of_msq(struct kern_ipc_perm *msq) |
3242 | { | 3242 | { |
3243 | return (struct smack_known *)msq->q_perm.security; | 3243 | return (struct smack_known *)msq->security; |
3244 | } | 3244 | } |
3245 | 3245 | ||
3246 | /** | 3246 | /** |
@@ -3250,7 +3250,7 @@ static struct smack_known *smack_of_msq(struct msg_queue *msq) | |||
3250 | * | 3250 | * |
3251 | * return 0 if current has access, error otherwise | 3251 | * return 0 if current has access, error otherwise |
3252 | */ | 3252 | */ |
3253 | static int smk_curacc_msq(struct msg_queue *msq, int access) | 3253 | static int smk_curacc_msq(struct kern_ipc_perm *msq, int access) |
3254 | { | 3254 | { |
3255 | struct smack_known *msp = smack_of_msq(msq); | 3255 | struct smack_known *msp = smack_of_msq(msq); |
3256 | struct smk_audit_info ad; | 3256 | struct smk_audit_info ad; |
@@ -3258,7 +3258,7 @@ static int smk_curacc_msq(struct msg_queue *msq, int access) | |||
3258 | 3258 | ||
3259 | #ifdef CONFIG_AUDIT | 3259 | #ifdef CONFIG_AUDIT |
3260 | smk_ad_init(&ad, __func__, LSM_AUDIT_DATA_IPC); | 3260 | smk_ad_init(&ad, __func__, LSM_AUDIT_DATA_IPC); |
3261 | ad.a.u.ipc_id = msq->q_perm.id; | 3261 | ad.a.u.ipc_id = msq->id; |
3262 | #endif | 3262 | #endif |
3263 | rc = smk_curacc(msp, access, &ad); | 3263 | rc = smk_curacc(msp, access, &ad); |
3264 | rc = smk_bu_current("msq", msp, access, rc); | 3264 | rc = smk_bu_current("msq", msp, access, rc); |
@@ -3272,7 +3272,7 @@ static int smk_curacc_msq(struct msg_queue *msq, int access) | |||
3272 | * | 3272 | * |
3273 | * Returns 0 if current has the requested access, error code otherwise | 3273 | * Returns 0 if current has the requested access, error code otherwise |
3274 | */ | 3274 | */ |
3275 | static int smack_msg_queue_associate(struct msg_queue *msq, int msqflg) | 3275 | static int smack_msg_queue_associate(struct kern_ipc_perm *msq, int msqflg) |
3276 | { | 3276 | { |
3277 | int may; | 3277 | int may; |
3278 | 3278 | ||
@@ -3287,7 +3287,7 @@ static int smack_msg_queue_associate(struct msg_queue *msq, int msqflg) | |||
3287 | * | 3287 | * |
3288 | * Returns 0 if current has the requested access, error code otherwise | 3288 | * Returns 0 if current has the requested access, error code otherwise |
3289 | */ | 3289 | */ |
3290 | static int smack_msg_queue_msgctl(struct msg_queue *msq, int cmd) | 3290 | static int smack_msg_queue_msgctl(struct kern_ipc_perm *msq, int cmd) |
3291 | { | 3291 | { |
3292 | int may; | 3292 | int may; |
3293 | 3293 | ||
@@ -3321,7 +3321,7 @@ static int smack_msg_queue_msgctl(struct msg_queue *msq, int cmd) | |||
3321 | * | 3321 | * |
3322 | * Returns 0 if current has the requested access, error code otherwise | 3322 | * Returns 0 if current has the requested access, error code otherwise |
3323 | */ | 3323 | */ |
3324 | static int smack_msg_queue_msgsnd(struct msg_queue *msq, struct msg_msg *msg, | 3324 | static int smack_msg_queue_msgsnd(struct kern_ipc_perm *msq, struct msg_msg *msg, |
3325 | int msqflg) | 3325 | int msqflg) |
3326 | { | 3326 | { |
3327 | int may; | 3327 | int may; |
@@ -3340,7 +3340,7 @@ static int smack_msg_queue_msgsnd(struct msg_queue *msq, struct msg_msg *msg, | |||
3340 | * | 3340 | * |
3341 | * Returns 0 if current has read and write access, error code otherwise | 3341 | * Returns 0 if current has read and write access, error code otherwise |
3342 | */ | 3342 | */ |
3343 | static int smack_msg_queue_msgrcv(struct msg_queue *msq, struct msg_msg *msg, | 3343 | static int smack_msg_queue_msgrcv(struct kern_ipc_perm *msq, struct msg_msg *msg, |
3344 | struct task_struct *target, long type, int mode) | 3344 | struct task_struct *target, long type, int mode) |
3345 | { | 3345 | { |
3346 | return smk_curacc_msq(msq, MAY_READWRITE); | 3346 | return smk_curacc_msq(msq, MAY_READWRITE); |