ipc: clean up ipc/shm.c
Use the macro shm_ids(). Remove useless check for a userspace pointer, because copy_to_user() will check it. Some style cleanups. Signed-off-by: WANG Cong <wangcong@zeuux.org> Cc: Nadia Derbey <Nadia.Derbey@bull.net> Cc: Pierre Peiffer <peifferp@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
8cd3ac3aca
commit
e8148f7588
15
ipc/shm.c
15
ipc/shm.c
@ -75,7 +75,7 @@ void shm_init_ns(struct ipc_namespace *ns)
|
||||
ns->shm_ctlall = SHMALL;
|
||||
ns->shm_ctlmni = SHMMNI;
|
||||
ns->shm_tot = 0;
|
||||
ipc_init_ids(&ns->ids[IPC_SHM_IDS]);
|
||||
ipc_init_ids(&shm_ids(ns));
|
||||
}
|
||||
|
||||
/*
|
||||
@ -644,7 +644,7 @@ asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
memset(&shminfo,0,sizeof(shminfo));
|
||||
memset(&shminfo, 0, sizeof(shminfo));
|
||||
shminfo.shmmni = shminfo.shmseg = ns->shm_ctlmni;
|
||||
shminfo.shmmax = ns->shm_ctlmax;
|
||||
shminfo.shmall = ns->shm_ctlall;
|
||||
@ -669,7 +669,7 @@ asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
memset(&shm_info,0,sizeof(shm_info));
|
||||
memset(&shm_info, 0, sizeof(shm_info));
|
||||
down_read(&shm_ids(ns).rw_mutex);
|
||||
shm_info.used_ids = shm_ids(ns).in_use;
|
||||
shm_get_stat (ns, &shm_info.shm_rss, &shm_info.shm_swp);
|
||||
@ -678,7 +678,7 @@ asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf)
|
||||
shm_info.swap_successes = 0;
|
||||
err = ipc_get_maxid(&shm_ids(ns));
|
||||
up_read(&shm_ids(ns).rw_mutex);
|
||||
if(copy_to_user (buf, &shm_info, sizeof(shm_info))) {
|
||||
if (copy_to_user(buf, &shm_info, sizeof(shm_info))) {
|
||||
err = -EFAULT;
|
||||
goto out;
|
||||
}
|
||||
@ -692,11 +692,6 @@ asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf)
|
||||
struct shmid64_ds tbuf;
|
||||
int result;
|
||||
|
||||
if (!buf) {
|
||||
err = -EFAULT;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (cmd == SHM_STAT) {
|
||||
shp = shm_lock(ns, shmid);
|
||||
if (IS_ERR(shp)) {
|
||||
@ -712,7 +707,7 @@ asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf)
|
||||
}
|
||||
result = 0;
|
||||
}
|
||||
err=-EACCES;
|
||||
err = -EACCES;
|
||||
if (ipcperms (&shp->shm_perm, S_IRUGO))
|
||||
goto out_unlock;
|
||||
err = security_shm_shmctl(shp, cmd);
|
||||
|
Loading…
Reference in New Issue
Block a user