You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[PATCH] namespaces: utsname: switch to using uts namespaces
Replace references to system_utsname to the per-process uts namespace where appropriate. This includes things like uname. Changes: Per Eric Biederman's comments, use the per-process uts namespace for ELF_PLATFORM, sunrpc, and parts of net/ipv4/ipconfig.c [jdike@addtoit.com: UML fix] [clg@fr.ibm.com: cleanup] [akpm@osdl.org: build fix] Signed-off-by: Serge E. Hallyn <serue@us.ibm.com> Cc: Kirill Korotaev <dev@openvz.org> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Herbert Poetzl <herbert@13thfloor.at> Cc: Andrey Savochkin <saw@sw.ru> Signed-off-by: Cedric Le Goater <clg@fr.ibm.com> Cc: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
0bdd7aab7f
commit
e9ff3990f0
+13
-13
@@ -402,15 +402,15 @@ osf_utsname(char __user *name)
|
||||
|
||||
down_read(&uts_sem);
|
||||
error = -EFAULT;
|
||||
if (copy_to_user(name + 0, system_utsname.sysname, 32))
|
||||
if (copy_to_user(name + 0, utsname()->sysname, 32))
|
||||
goto out;
|
||||
if (copy_to_user(name + 32, system_utsname.nodename, 32))
|
||||
if (copy_to_user(name + 32, utsname()->nodename, 32))
|
||||
goto out;
|
||||
if (copy_to_user(name + 64, system_utsname.release, 32))
|
||||
if (copy_to_user(name + 64, utsname()->release, 32))
|
||||
goto out;
|
||||
if (copy_to_user(name + 96, system_utsname.version, 32))
|
||||
if (copy_to_user(name + 96, utsname()->version, 32))
|
||||
goto out;
|
||||
if (copy_to_user(name + 128, system_utsname.machine, 32))
|
||||
if (copy_to_user(name + 128, utsname()->machine, 32))
|
||||
goto out;
|
||||
|
||||
error = 0;
|
||||
@@ -449,8 +449,8 @@ osf_getdomainname(char __user *name, int namelen)
|
||||
|
||||
down_read(&uts_sem);
|
||||
for (i = 0; i < len; ++i) {
|
||||
__put_user(system_utsname.domainname[i], name + i);
|
||||
if (system_utsname.domainname[i] == '\0')
|
||||
__put_user(utsname()->domainname[i], name + i);
|
||||
if (utsname()->domainname[i] == '\0')
|
||||
break;
|
||||
}
|
||||
up_read(&uts_sem);
|
||||
@@ -607,12 +607,12 @@ osf_sigstack(struct sigstack __user *uss, struct sigstack __user *uoss)
|
||||
asmlinkage long
|
||||
osf_sysinfo(int command, char __user *buf, long count)
|
||||
{
|
||||
static char * sysinfo_table[] = {
|
||||
system_utsname.sysname,
|
||||
system_utsname.nodename,
|
||||
system_utsname.release,
|
||||
system_utsname.version,
|
||||
system_utsname.machine,
|
||||
char *sysinfo_table[] = {
|
||||
utsname()->sysname,
|
||||
utsname()->nodename,
|
||||
utsname()->release,
|
||||
utsname()->version,
|
||||
utsname()->machine,
|
||||
"alpha", /* instruction set architecture */
|
||||
"dummy", /* hardware serial number */
|
||||
"dummy", /* hardware manufacturer */
|
||||
|
||||
+16
-11
@@ -210,7 +210,7 @@ asmlinkage int sys_uname(struct old_utsname __user * name)
|
||||
if (!name)
|
||||
return -EFAULT;
|
||||
down_read(&uts_sem);
|
||||
err=copy_to_user(name, &system_utsname, sizeof (*name));
|
||||
err = copy_to_user(name, utsname(), sizeof (*name));
|
||||
up_read(&uts_sem);
|
||||
return err?-EFAULT:0;
|
||||
}
|
||||
@@ -226,16 +226,21 @@ asmlinkage int sys_olduname(struct oldold_utsname __user * name)
|
||||
|
||||
down_read(&uts_sem);
|
||||
|
||||
error = __copy_to_user(&name->sysname,&system_utsname.sysname,__OLD_UTS_LEN);
|
||||
error |= __put_user(0,name->sysname+__OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->nodename,&system_utsname.nodename,__OLD_UTS_LEN);
|
||||
error |= __put_user(0,name->nodename+__OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->release,&system_utsname.release,__OLD_UTS_LEN);
|
||||
error |= __put_user(0,name->release+__OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->version,&system_utsname.version,__OLD_UTS_LEN);
|
||||
error |= __put_user(0,name->version+__OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->machine,&system_utsname.machine,__OLD_UTS_LEN);
|
||||
error |= __put_user(0,name->machine+__OLD_UTS_LEN);
|
||||
error = __copy_to_user(&name->sysname, &utsname()->sysname,
|
||||
__OLD_UTS_LEN);
|
||||
error |= __put_user(0, name->sysname + __OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->nodename, &utsname()->nodename,
|
||||
__OLD_UTS_LEN);
|
||||
error |= __put_user(0, name->nodename + __OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->release, &utsname()->release,
|
||||
__OLD_UTS_LEN);
|
||||
error |= __put_user(0, name->release + __OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->version, &utsname()->version,
|
||||
__OLD_UTS_LEN);
|
||||
error |= __put_user(0, name->version + __OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->machine, &utsname()->machine,
|
||||
__OLD_UTS_LEN);
|
||||
error |= __put_user(0, name->machine + __OLD_UTS_LEN);
|
||||
|
||||
up_read(&uts_sem);
|
||||
|
||||
|
||||
@@ -423,7 +423,7 @@ static int sn_topology_show(struct seq_file *s, void *d)
|
||||
"coherency_domain %d, "
|
||||
"region_size %d\n",
|
||||
|
||||
partid, system_utsname.nodename,
|
||||
partid, utsname()->nodename,
|
||||
shubtype ? "shub2" : "shub1",
|
||||
(u64)nasid_mask << nasid_shift, nasid_msb, nasid_shift,
|
||||
system_size, sharing_size, coher, region_size);
|
||||
|
||||
@@ -205,7 +205,7 @@ asmlinkage int sys_uname(struct old_utsname * name)
|
||||
if (!name)
|
||||
return -EFAULT;
|
||||
down_read(&uts_sem);
|
||||
err=copy_to_user(name, &system_utsname, sizeof (*name));
|
||||
err = copy_to_user(name, utsname(), sizeof (*name));
|
||||
up_read(&uts_sem);
|
||||
return err?-EFAULT:0;
|
||||
}
|
||||
|
||||
@@ -1039,7 +1039,7 @@ asmlinkage long sys32_newuname(struct new_utsname __user * name)
|
||||
int ret = 0;
|
||||
|
||||
down_read(&uts_sem);
|
||||
if (copy_to_user(name,&system_utsname,sizeof *name))
|
||||
if (copy_to_user(name, utsname(), sizeof *name))
|
||||
ret = -EFAULT;
|
||||
up_read(&uts_sem);
|
||||
|
||||
|
||||
+16
-11
@@ -231,7 +231,7 @@ out:
|
||||
*/
|
||||
asmlinkage int sys_uname(struct old_utsname __user * name)
|
||||
{
|
||||
if (name && !copy_to_user(name, &system_utsname, sizeof (*name)))
|
||||
if (name && !copy_to_user(name, utsname(), sizeof (*name)))
|
||||
return 0;
|
||||
return -EFAULT;
|
||||
}
|
||||
@@ -248,16 +248,21 @@ asmlinkage int sys_olduname(struct oldold_utsname __user * name)
|
||||
if (!access_ok(VERIFY_WRITE,name,sizeof(struct oldold_utsname)))
|
||||
return -EFAULT;
|
||||
|
||||
error = __copy_to_user(&name->sysname,&system_utsname.sysname,__OLD_UTS_LEN);
|
||||
error -= __put_user(0,name->sysname+__OLD_UTS_LEN);
|
||||
error -= __copy_to_user(&name->nodename,&system_utsname.nodename,__OLD_UTS_LEN);
|
||||
error -= __put_user(0,name->nodename+__OLD_UTS_LEN);
|
||||
error -= __copy_to_user(&name->release,&system_utsname.release,__OLD_UTS_LEN);
|
||||
error -= __put_user(0,name->release+__OLD_UTS_LEN);
|
||||
error -= __copy_to_user(&name->version,&system_utsname.version,__OLD_UTS_LEN);
|
||||
error -= __put_user(0,name->version+__OLD_UTS_LEN);
|
||||
error -= __copy_to_user(&name->machine,&system_utsname.machine,__OLD_UTS_LEN);
|
||||
error = __put_user(0,name->machine+__OLD_UTS_LEN);
|
||||
error = __copy_to_user(&name->sysname, &utsname()->sysname,
|
||||
__OLD_UTS_LEN);
|
||||
error -= __put_user(0, name->sysname + __OLD_UTS_LEN);
|
||||
error -= __copy_to_user(&name->nodename, &utsname()->nodename,
|
||||
__OLD_UTS_LEN);
|
||||
error -= __put_user(0, name->nodename + __OLD_UTS_LEN);
|
||||
error -= __copy_to_user(&name->release, &utsname()->release,
|
||||
__OLD_UTS_LEN);
|
||||
error -= __put_user(0, name->release + __OLD_UTS_LEN);
|
||||
error -= __copy_to_user(&name->version, &utsname()->version,
|
||||
__OLD_UTS_LEN);
|
||||
error -= __put_user(0, name->version + __OLD_UTS_LEN);
|
||||
error -= __copy_to_user(&name->machine, &utsname()->machine,
|
||||
__OLD_UTS_LEN);
|
||||
error = __put_user(0, name->machine + __OLD_UTS_LEN);
|
||||
error = error ? -EFAULT : 0;
|
||||
|
||||
return error;
|
||||
|
||||
@@ -884,7 +884,7 @@ asmlinkage int irix_getdomainname(char __user *name, int len)
|
||||
down_read(&uts_sem);
|
||||
if (len > __NEW_UTS_LEN)
|
||||
len = __NEW_UTS_LEN;
|
||||
err = copy_to_user(name, system_utsname.domainname, len) ? -EFAULT : 0;
|
||||
err = copy_to_user(name, utsname()->domainname, len) ? -EFAULT : 0;
|
||||
up_read(&uts_sem);
|
||||
|
||||
return err;
|
||||
@@ -1127,11 +1127,11 @@ struct iuname {
|
||||
asmlinkage int irix_uname(struct iuname __user *buf)
|
||||
{
|
||||
down_read(&uts_sem);
|
||||
if (copy_from_user(system_utsname.sysname, buf->sysname, 65)
|
||||
|| copy_from_user(system_utsname.nodename, buf->nodename, 65)
|
||||
|| copy_from_user(system_utsname.release, buf->release, 65)
|
||||
|| copy_from_user(system_utsname.version, buf->version, 65)
|
||||
|| copy_from_user(system_utsname.machine, buf->machine, 65)) {
|
||||
if (copy_from_user(utsname()->sysname, buf->sysname, 65)
|
||||
|| copy_from_user(utsname()->nodename, buf->nodename, 65)
|
||||
|| copy_from_user(utsname()->release, buf->release, 65)
|
||||
|| copy_from_user(utsname()->version, buf->version, 65)
|
||||
|| copy_from_user(utsname()->machine, buf->machine, 65)) {
|
||||
return -EFAULT;
|
||||
}
|
||||
up_read(&uts_sem);
|
||||
|
||||
+21
-16
@@ -266,16 +266,21 @@ static int hpux_uname(struct hpux_utsname *name)
|
||||
|
||||
down_read(&uts_sem);
|
||||
|
||||
error = __copy_to_user(&name->sysname,&system_utsname.sysname,HPUX_UTSLEN-1);
|
||||
error |= __put_user(0,name->sysname+HPUX_UTSLEN-1);
|
||||
error |= __copy_to_user(&name->nodename,&system_utsname.nodename,HPUX_UTSLEN-1);
|
||||
error |= __put_user(0,name->nodename+HPUX_UTSLEN-1);
|
||||
error |= __copy_to_user(&name->release,&system_utsname.release,HPUX_UTSLEN-1);
|
||||
error |= __put_user(0,name->release+HPUX_UTSLEN-1);
|
||||
error |= __copy_to_user(&name->version,&system_utsname.version,HPUX_UTSLEN-1);
|
||||
error |= __put_user(0,name->version+HPUX_UTSLEN-1);
|
||||
error |= __copy_to_user(&name->machine,&system_utsname.machine,HPUX_UTSLEN-1);
|
||||
error |= __put_user(0,name->machine+HPUX_UTSLEN-1);
|
||||
error = __copy_to_user(&name->sysname, &utsname()->sysname,
|
||||
HPUX_UTSLEN - 1);
|
||||
error |= __put_user(0, name->sysname + HPUX_UTSLEN - 1);
|
||||
error |= __copy_to_user(&name->nodename, &utsname()->nodename,
|
||||
HPUX_UTSLEN - 1);
|
||||
error |= __put_user(0, name->nodename + HPUX_UTSLEN - 1);
|
||||
error |= __copy_to_user(&name->release, &utsname()->release,
|
||||
HPUX_UTSLEN - 1);
|
||||
error |= __put_user(0, name->release + HPUX_UTSLEN - 1);
|
||||
error |= __copy_to_user(&name->version, &utsname()->version,
|
||||
HPUX_UTSLEN - 1);
|
||||
error |= __put_user(0, name->version + HPUX_UTSLEN - 1);
|
||||
error |= __copy_to_user(&name->machine, &utsname()->machine,
|
||||
HPUX_UTSLEN - 1);
|
||||
error |= __put_user(0, name->machine + HPUX_UTSLEN - 1);
|
||||
|
||||
up_read(&uts_sem);
|
||||
|
||||
@@ -373,8 +378,8 @@ int hpux_utssys(char *ubuf, int n, int type)
|
||||
/* TODO: print a warning about using this? */
|
||||
down_write(&uts_sem);
|
||||
error = -EFAULT;
|
||||
if (!copy_from_user(system_utsname.sysname, ubuf, len)) {
|
||||
system_utsname.sysname[len] = 0;
|
||||
if (!copy_from_user(utsname()->sysname, ubuf, len)) {
|
||||
utsname()->sysname[len] = 0;
|
||||
error = 0;
|
||||
}
|
||||
up_write(&uts_sem);
|
||||
@@ -400,8 +405,8 @@ int hpux_utssys(char *ubuf, int n, int type)
|
||||
/* TODO: print a warning about this? */
|
||||
down_write(&uts_sem);
|
||||
error = -EFAULT;
|
||||
if (!copy_from_user(system_utsname.release, ubuf, len)) {
|
||||
system_utsname.release[len] = 0;
|
||||
if (!copy_from_user(utsname()->release, ubuf, len)) {
|
||||
utsname()->release[len] = 0;
|
||||
error = 0;
|
||||
}
|
||||
up_write(&uts_sem);
|
||||
@@ -422,13 +427,13 @@ int hpux_getdomainname(char *name, int len)
|
||||
|
||||
down_read(&uts_sem);
|
||||
|
||||
nlen = strlen(system_utsname.domainname) + 1;
|
||||
nlen = strlen(utsname()->domainname) + 1;
|
||||
|
||||
if (nlen < len)
|
||||
len = nlen;
|
||||
if(len > __NEW_UTS_LEN)
|
||||
goto done;
|
||||
if(copy_to_user(name, system_utsname.domainname, len))
|
||||
if(copy_to_user(name, utsname()->domainname, len))
|
||||
goto done;
|
||||
err = 0;
|
||||
done:
|
||||
|
||||
@@ -260,7 +260,7 @@ long ppc_newuname(struct new_utsname __user * name)
|
||||
int err = 0;
|
||||
|
||||
down_read(&uts_sem);
|
||||
if (copy_to_user(name, &system_utsname, sizeof(*name)))
|
||||
if (copy_to_user(name, utsname(), sizeof(*name)))
|
||||
err = -EFAULT;
|
||||
up_read(&uts_sem);
|
||||
if (!err)
|
||||
@@ -273,7 +273,7 @@ int sys_uname(struct old_utsname __user *name)
|
||||
int err = 0;
|
||||
|
||||
down_read(&uts_sem);
|
||||
if (copy_to_user(name, &system_utsname, sizeof(*name)))
|
||||
if (copy_to_user(name, utsname(), sizeof(*name)))
|
||||
err = -EFAULT;
|
||||
up_read(&uts_sem);
|
||||
if (!err)
|
||||
@@ -289,19 +289,19 @@ int sys_olduname(struct oldold_utsname __user *name)
|
||||
return -EFAULT;
|
||||
|
||||
down_read(&uts_sem);
|
||||
error = __copy_to_user(&name->sysname, &system_utsname.sysname,
|
||||
error = __copy_to_user(&name->sysname, &utsname()->sysname,
|
||||
__OLD_UTS_LEN);
|
||||
error |= __put_user(0, name->sysname + __OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->nodename, &system_utsname.nodename,
|
||||
error |= __copy_to_user(&name->nodename, &utsname()->nodename,
|
||||
__OLD_UTS_LEN);
|
||||
error |= __put_user(0, name->nodename + __OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->release, &system_utsname.release,
|
||||
error |= __copy_to_user(&name->release, &utsname()->release,
|
||||
__OLD_UTS_LEN);
|
||||
error |= __put_user(0, name->release + __OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->version, &system_utsname.version,
|
||||
error |= __copy_to_user(&name->version, &utsname()->version,
|
||||
__OLD_UTS_LEN);
|
||||
error |= __put_user(0, name->version + __OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->machine, &system_utsname.machine,
|
||||
error |= __copy_to_user(&name->machine, &utsname()->machine,
|
||||
__OLD_UTS_LEN);
|
||||
error |= override_machine(name->machine);
|
||||
up_read(&uts_sem);
|
||||
|
||||
@@ -281,7 +281,7 @@ asmlinkage int sys_uname(struct old_utsname * name)
|
||||
if (!name)
|
||||
return -EFAULT;
|
||||
down_read(&uts_sem);
|
||||
err=copy_to_user(name, &system_utsname, sizeof (*name));
|
||||
err = copy_to_user(name, utsname(), sizeof (*name));
|
||||
up_read(&uts_sem);
|
||||
return err?-EFAULT:0;
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@ asmlinkage int sys_uname(struct old_utsname * name)
|
||||
if (!name)
|
||||
return -EFAULT;
|
||||
down_read(&uts_sem);
|
||||
err=copy_to_user(name, &system_utsname, sizeof (*name));
|
||||
err = copy_to_user(name, utsname(), sizeof (*name));
|
||||
up_read(&uts_sem);
|
||||
return err?-EFAULT:0;
|
||||
}
|
||||
|
||||
@@ -475,13 +475,13 @@ asmlinkage int sys_getdomainname(char __user *name, int len)
|
||||
|
||||
down_read(&uts_sem);
|
||||
|
||||
nlen = strlen(system_utsname.domainname) + 1;
|
||||
nlen = strlen(utsname()->domainname) + 1;
|
||||
err = -EINVAL;
|
||||
if (nlen > len)
|
||||
goto out;
|
||||
|
||||
err = -EFAULT;
|
||||
if (!copy_to_user(name, system_utsname.domainname, nlen))
|
||||
if (!copy_to_user(name, utsname()->domainname, nlen))
|
||||
err = 0;
|
||||
|
||||
out:
|
||||
|
||||
@@ -483,13 +483,18 @@ asmlinkage int sunos_uname(struct sunos_utsname __user *name)
|
||||
{
|
||||
int ret;
|
||||
down_read(&uts_sem);
|
||||
ret = copy_to_user(&name->sname[0], &system_utsname.sysname[0], sizeof(name->sname) - 1);
|
||||
ret = copy_to_user(&name->sname[0], &utsname()->sysname[0],
|
||||
sizeof(name->sname) - 1);
|
||||
if (!ret) {
|
||||
ret |= __copy_to_user(&name->nname[0], &system_utsname.nodename[0], sizeof(name->nname) - 1);
|
||||
ret |= __copy_to_user(&name->nname[0], &utsname()->nodename[0],
|
||||
sizeof(name->nname) - 1);
|
||||
ret |= __put_user('\0', &name->nname[8]);
|
||||
ret |= __copy_to_user(&name->rel[0], &system_utsname.release[0], sizeof(name->rel) - 1);
|
||||
ret |= __copy_to_user(&name->ver[0], &system_utsname.version[0], sizeof(name->ver) - 1);
|
||||
ret |= __copy_to_user(&name->mach[0], &system_utsname.machine[0], sizeof(name->mach) - 1);
|
||||
ret |= __copy_to_user(&name->rel[0], &utsname()->release[0],
|
||||
sizeof(name->rel) - 1);
|
||||
ret |= __copy_to_user(&name->ver[0], &utsname()->version[0],
|
||||
sizeof(name->ver) - 1);
|
||||
ret |= __copy_to_user(&name->mach[0], &utsname()->machine[0],
|
||||
sizeof(name->mach) - 1);
|
||||
}
|
||||
up_read(&uts_sem);
|
||||
return ret ? -EFAULT : 0;
|
||||
|
||||
@@ -712,13 +712,13 @@ asmlinkage long sys_getdomainname(char __user *name, int len)
|
||||
|
||||
down_read(&uts_sem);
|
||||
|
||||
nlen = strlen(system_utsname.domainname) + 1;
|
||||
nlen = strlen(utsname()->domainname) + 1;
|
||||
err = -EINVAL;
|
||||
if (nlen > len)
|
||||
goto out;
|
||||
|
||||
err = -EFAULT;
|
||||
if (!copy_to_user(name, system_utsname.domainname, nlen))
|
||||
if (!copy_to_user(name, utsname()->domainname, nlen))
|
||||
err = 0;
|
||||
|
||||
out:
|
||||
|
||||
@@ -439,16 +439,16 @@ asmlinkage int sunos_uname(struct sunos_utsname __user *name)
|
||||
int ret;
|
||||
|
||||
down_read(&uts_sem);
|
||||
ret = copy_to_user(&name->sname[0], &system_utsname.sysname[0],
|
||||
ret = copy_to_user(&name->sname[0], &utsname()->sysname[0],
|
||||
sizeof(name->sname) - 1);
|
||||
ret |= copy_to_user(&name->nname[0], &system_utsname.nodename[0],
|
||||
ret |= copy_to_user(&name->nname[0], &utsname()->nodename[0],
|
||||
sizeof(name->nname) - 1);
|
||||
ret |= put_user('\0', &name->nname[8]);
|
||||
ret |= copy_to_user(&name->rel[0], &system_utsname.release[0],
|
||||
ret |= copy_to_user(&name->rel[0], &utsname()->release[0],
|
||||
sizeof(name->rel) - 1);
|
||||
ret |= copy_to_user(&name->ver[0], &system_utsname.version[0],
|
||||
ret |= copy_to_user(&name->ver[0], &utsname()->version[0],
|
||||
sizeof(name->ver) - 1);
|
||||
ret |= copy_to_user(&name->mach[0], &system_utsname.machine[0],
|
||||
ret |= copy_to_user(&name->mach[0], &utsname()->machine[0],
|
||||
sizeof(name->mach) - 1);
|
||||
up_read(&uts_sem);
|
||||
return (ret ? -EFAULT : 0);
|
||||
|
||||
@@ -249,7 +249,7 @@ asmlinkage int solaris_utssys(u32 buf, u32 flags, int which, u32 buf2)
|
||||
/* Let's cheat */
|
||||
err = set_utsfield(v->sysname, "SunOS", 1, 0);
|
||||
down_read(&uts_sem);
|
||||
err |= set_utsfield(v->nodename, system_utsname.nodename,
|
||||
err |= set_utsfield(v->nodename, utsname()->nodename,
|
||||
1, 1);
|
||||
up_read(&uts_sem);
|
||||
err |= set_utsfield(v->release, "2.6", 0, 0);
|
||||
@@ -273,7 +273,7 @@ asmlinkage int solaris_utsname(u32 buf)
|
||||
/* Why should we not lie a bit? */
|
||||
down_read(&uts_sem);
|
||||
err = set_utsfield(v->sysname, "SunOS", 0, 0);
|
||||
err |= set_utsfield(v->nodename, system_utsname.nodename, 1, 1);
|
||||
err |= set_utsfield(v->nodename, utsname()->nodename, 1, 1);
|
||||
err |= set_utsfield(v->release, "5.6", 0, 0);
|
||||
err |= set_utsfield(v->version, "Generic", 0, 0);
|
||||
err |= set_utsfield(v->machine, machine(), 0, 0);
|
||||
@@ -305,7 +305,7 @@ asmlinkage int solaris_sysinfo(int cmd, u32 buf, s32 count)
|
||||
case SI_HOSTNAME:
|
||||
r = buffer + 256;
|
||||
down_read(&uts_sem);
|
||||
for (p = system_utsname.nodename, q = buffer;
|
||||
for (p = utsname()->nodename, q = buffer;
|
||||
q < r && *p && *p != '.'; *q++ = *p++);
|
||||
up_read(&uts_sem);
|
||||
*q = 0;
|
||||
|
||||
@@ -106,9 +106,9 @@ void mconsole_version(struct mc_request *req)
|
||||
{
|
||||
char version[256];
|
||||
|
||||
sprintf(version, "%s %s %s %s %s", system_utsname.sysname,
|
||||
system_utsname.nodename, system_utsname.release,
|
||||
system_utsname.version, system_utsname.machine);
|
||||
sprintf(version, "%s %s %s %s %s", utsname()->sysname,
|
||||
utsname()->nodename, utsname()->release,
|
||||
utsname()->version, utsname()->machine);
|
||||
mconsole_reply(req, version, 0, 0);
|
||||
}
|
||||
|
||||
|
||||
+11
-11
@@ -110,7 +110,7 @@ long sys_uname(struct old_utsname __user * name)
|
||||
if (!name)
|
||||
return -EFAULT;
|
||||
down_read(&uts_sem);
|
||||
err = copy_to_user(name, &system_utsname, sizeof (*name));
|
||||
err = copy_to_user(name, utsname(), sizeof (*name));
|
||||
up_read(&uts_sem);
|
||||
return err?-EFAULT:0;
|
||||
}
|
||||
@@ -126,21 +126,21 @@ long sys_olduname(struct oldold_utsname __user * name)
|
||||
|
||||
down_read(&uts_sem);
|
||||
|
||||
error = __copy_to_user(&name->sysname,&system_utsname.sysname,
|
||||
error = __copy_to_user(&name->sysname, &utsname()->sysname,
|
||||
__OLD_UTS_LEN);
|
||||
error |= __put_user(0,name->sysname+__OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->nodename,&system_utsname.nodename,
|
||||
error |= __put_user(0, name->sysname + __OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->nodename, &utsname()->nodename,
|
||||
__OLD_UTS_LEN);
|
||||
error |= __put_user(0,name->nodename+__OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->release,&system_utsname.release,
|
||||
error |= __put_user(0, name->nodename + __OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->release, &utsname()->release,
|
||||
__OLD_UTS_LEN);
|
||||
error |= __put_user(0,name->release+__OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->version,&system_utsname.version,
|
||||
error |= __put_user(0, name->release + __OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->version, &utsname()->version,
|
||||
__OLD_UTS_LEN);
|
||||
error |= __put_user(0,name->version+__OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->machine,&system_utsname.machine,
|
||||
error |= __put_user(0, name->version + __OLD_UTS_LEN);
|
||||
error |= __copy_to_user(&name->machine, &utsname()->machine,
|
||||
__OLD_UTS_LEN);
|
||||
error |= __put_user(0,name->machine+__OLD_UTS_LEN);
|
||||
error |= __put_user(0, name->machine + __OLD_UTS_LEN);
|
||||
|
||||
up_read(&uts_sem);
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ asmlinkage long sys_uname64(struct new_utsname __user * name)
|
||||
{
|
||||
int err;
|
||||
down_read(&uts_sem);
|
||||
err = copy_to_user(name, &system_utsname, sizeof (*name));
|
||||
err = copy_to_user(name, utsname(), sizeof (*name));
|
||||
up_read(&uts_sem);
|
||||
if (personality(current->personality) == PER_LINUX32)
|
||||
err |= copy_to_user(&name->machine, "i686", 5);
|
||||
|
||||
+19
-19
@@ -784,36 +784,36 @@ asmlinkage long sys32_olduname(struct oldold_utsname __user * name)
|
||||
|
||||
if (!name)
|
||||
return -EFAULT;
|
||||
if (!access_ok(VERIFY_WRITE,name,sizeof(struct oldold_utsname)))
|
||||
if (!access_ok(VERIFY_WRITE, name, sizeof(struct oldold_utsname)))
|
||||
return -EFAULT;
|
||||
|
||||
down_read(&uts_sem);
|
||||
|
||||
err = __copy_to_user(&name->sysname,&system_utsname.sysname,
|
||||
|
||||
err = __copy_to_user(&name->sysname,&utsname()->sysname,
|
||||
__OLD_UTS_LEN);
|
||||
err |= __put_user(0,name->sysname+__OLD_UTS_LEN);
|
||||
err |= __copy_to_user(&name->nodename,&system_utsname.nodename,
|
||||
err |= __copy_to_user(&name->nodename,&utsname()->nodename,
|
||||
__OLD_UTS_LEN);
|
||||
err |= __put_user(0,name->nodename+__OLD_UTS_LEN);
|
||||
err |= __copy_to_user(&name->release,&system_utsname.release,
|
||||
err |= __copy_to_user(&name->release,&utsname()->release,
|
||||
__OLD_UTS_LEN);
|
||||
err |= __put_user(0,name->release+__OLD_UTS_LEN);
|
||||
err |= __copy_to_user(&name->version,&system_utsname.version,
|
||||
err |= __copy_to_user(&name->version,&utsname()->version,
|
||||
__OLD_UTS_LEN);
|
||||
err |= __put_user(0,name->version+__OLD_UTS_LEN);
|
||||
{
|
||||
char *arch = "x86_64";
|
||||
if (personality(current->personality) == PER_LINUX32)
|
||||
arch = "i686";
|
||||
{
|
||||
char *arch = "x86_64";
|
||||
if (personality(current->personality) == PER_LINUX32)
|
||||
arch = "i686";
|
||||
|
||||
err |= __copy_to_user(&name->machine,arch,strlen(arch)+1);
|
||||
}
|
||||
|
||||
up_read(&uts_sem);
|
||||
|
||||
err = err ? -EFAULT : 0;
|
||||
|
||||
return err;
|
||||
err |= __copy_to_user(&name->machine, arch, strlen(arch)+1);
|
||||
}
|
||||
|
||||
up_read(&uts_sem);
|
||||
|
||||
err = err ? -EFAULT : 0;
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
long sys32_uname(struct old_utsname __user * name)
|
||||
@@ -822,7 +822,7 @@ long sys32_uname(struct old_utsname __user * name)
|
||||
if (!name)
|
||||
return -EFAULT;
|
||||
down_read(&uts_sem);
|
||||
err=copy_to_user(name, &system_utsname, sizeof (*name));
|
||||
err = copy_to_user(name, utsname(), sizeof (*name));
|
||||
up_read(&uts_sem);
|
||||
if (personality(current->personality) == PER_LINUX32)
|
||||
err |= copy_to_user(&name->machine, "i686", 5);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user