mirror of
https://gitee.com/openharmony/kernel_linux
synced 2025-05-13 18:26:55 +00:00
ipc: use rlimit helpers
Make sure compiler won't do weird things with limits. E.g. fetching them twice may return 2 different values after writable limits are implemented. I.e. either use rlimit helpers added in 3e10e716abf3c71bdb5d86b8f507f9e72236c9cd ("resource: add helpers for fetching rlimits") or ACCESS_ONCE if not applicable. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
d6db2ade10
commit
f1eb1332b8
@ -155,7 +155,7 @@ static struct inode *mqueue_get_inode(struct super_block *sb,
|
||||
spin_lock(&mq_lock);
|
||||
if (u->mq_bytes + mq_bytes < u->mq_bytes ||
|
||||
u->mq_bytes + mq_bytes >
|
||||
p->signal->rlim[RLIMIT_MSGQUEUE].rlim_cur) {
|
||||
task_rlimit(p, RLIMIT_MSGQUEUE)) {
|
||||
spin_unlock(&mq_lock);
|
||||
kfree(info->messages);
|
||||
goto out_inode;
|
||||
|
@ -764,8 +764,7 @@ SYSCALL_DEFINE3(shmctl, int, shmid, int, cmd, struct shmid_ds __user *, buf)
|
||||
if (euid != shp->shm_perm.uid &&
|
||||
euid != shp->shm_perm.cuid)
|
||||
goto out_unlock;
|
||||
if (cmd == SHM_LOCK &&
|
||||
!current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur)
|
||||
if (cmd == SHM_LOCK && !rlimit(RLIMIT_MEMLOCK))
|
||||
goto out_unlock;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user