Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / arch / sparc64 / kernel / sys_sparc.c
index 1abfb9c..ef41925 100644 (file)
@@ -6,6 +6,7 @@
  * platform.
  */
 
+#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/sched.h>
@@ -706,23 +707,21 @@ extern void check_pending(int signum);
 
 asmlinkage long sys_getdomainname(char __user *name, int len)
 {
-        int nlen, err;
-
-       if (len < 0)
-               return -EINVAL;
+        int nlen;
+       int err = -EFAULT;
 
        down_read(&uts_sem);
        
        nlen = strlen(vx_new_uts(domainname)) + 1;
-       err = -EINVAL;
-       if (nlen > len)
-               goto out;
 
-       err = -EFAULT;
-       if (!copy_to_user(name, vx_new_uts(domainname), nlen))
-               err = 0;
-
-out:
+        if (nlen < len)
+                len = nlen;
+       if (len > __NEW_UTS_LEN)
+               goto done;
+       if (copy_to_user(name, vx_new_uts(domainname), len))
+               goto done;
+       err = 0;
+done:
        up_read(&uts_sem);
        return err;
 }