mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 08:38:45 +02: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
3e10e716ab ("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
					
				
					 2 changed files with 2 additions and 3 deletions
				
			
		|  | @ -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…
	
		Reference in a new issue
	
	 Jiri Slaby
						Jiri Slaby