From 9eef911a2583d07c431f8007636a55e4b346f876 Mon Sep 17 00:00:00 2001 From: Andy Walker Date: Mon, 18 Sep 2006 07:11:36 -0700 Subject: [PATCH] --- yaml --- r: 33958 b: refs/heads/master c: b9c54f91a48146778fe91423d4d467a0ee8c719b h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/sparc/kernel/sys_sparc.c | 10 ++++++---- trunk/arch/sparc64/kernel/sys_sparc.c | 10 ++++++---- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index f8401f657362..bf791e66bfb6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b9b64e6e89fc5a6ef220747115c5b7764614ca3f +refs/heads/master: b9c54f91a48146778fe91423d4d467a0ee8c719b diff --git a/trunk/arch/sparc/kernel/sys_sparc.c b/trunk/arch/sparc/kernel/sys_sparc.c index 94ff58c9d4a9..896863fb208a 100644 --- a/trunk/arch/sparc/kernel/sys_sparc.c +++ b/trunk/arch/sparc/kernel/sys_sparc.c @@ -470,19 +470,21 @@ asmlinkage int sys_getdomainname(char __user *name, int len) { int nlen, err; - if (len < 0 || len > __NEW_UTS_LEN) + if (len < 0) return -EINVAL; down_read(&uts_sem); nlen = strlen(system_utsname.domainname) + 1; - if (nlen < len) - len = nlen; + err = -EINVAL; + if (nlen > len) + goto out; err = -EFAULT; - if (!copy_to_user(name, system_utsname.domainname, len)) + if (!copy_to_user(name, system_utsname.domainname, nlen)) err = 0; +out: up_read(&uts_sem); return err; } diff --git a/trunk/arch/sparc64/kernel/sys_sparc.c b/trunk/arch/sparc64/kernel/sys_sparc.c index bf5f14ee73de..c608c947e6c3 100644 --- a/trunk/arch/sparc64/kernel/sys_sparc.c +++ b/trunk/arch/sparc64/kernel/sys_sparc.c @@ -707,19 +707,21 @@ asmlinkage long sys_getdomainname(char __user *name, int len) { int nlen, err; - if (len < 0 || len > __NEW_UTS_LEN) + if (len < 0) return -EINVAL; down_read(&uts_sem); nlen = strlen(system_utsname.domainname) + 1; - if (nlen < len) - len = nlen; + err = -EINVAL; + if (nlen > len) + goto out; err = -EFAULT; - if (!copy_to_user(name, system_utsname.domainname, len)) + if (!copy_to_user(name, system_utsname.domainname, nlen)) err = 0; +out: up_read(&uts_sem); return err; }