diff options
| author | 2006-09-18 16:15:40 -0700 | |
|---|---|---|
| committer | 2006-09-18 16:15:40 -0700 | |
| commit | 20bf94e266969f91c623ed8b51da4109e3f57bcb (patch) | |
| tree | 4aead8959e49802b454d9c650a86ee04ae94ad47 /arch/sparc/kernel | |
| parent | Merge master.kernel.org:/home/rmk/linux-2.6-arm (diff) | |
| parent | [SPARC]: Fix regression in sys_getdomainname() (diff) | |
| download | linux-dev-20bf94e266969f91c623ed8b51da4109e3f57bcb.tar.xz linux-dev-20bf94e266969f91c623ed8b51da4109e3f57bcb.zip | |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
[SPARC]: Fix regression in sys_getdomainname()
[OPENPROMIO]: Handle current_node being NULL correctly.
Diffstat (limited to 'arch/sparc/kernel')
| -rw-r--r-- | arch/sparc/kernel/sys_sparc.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/sparc/kernel/sys_sparc.c b/arch/sparc/kernel/sys_sparc.c index 94ff58c9d4a9..896863fb208a 100644 --- a/arch/sparc/kernel/sys_sparc.c +++ b/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; } |
