Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8310a32c authored by David S. Miller's avatar David S. Miller
Browse files

[SPARC]: Fix length parameter verification in sys_getdomainname().



Found by scrashme.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8a84eb16
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -465,21 +465,21 @@ sys_rt_sigaction(int sig,

asmlinkage int sys_getdomainname(char __user *name, int len)
{
 	int nlen;
 	int err = -EFAULT;
 	int nlen, err;
 	
	if (len < 0 || len > __NEW_UTS_LEN)
		return -EINVAL;

 	down_read(&uts_sem);
 	
	nlen = strlen(system_utsname.domainname) + 1;

	if (nlen < len)
		len = nlen;
	if (len > __NEW_UTS_LEN)
		goto done;
	if (copy_to_user(name, system_utsname.domainname, len))
		goto done;

	err = -EFAULT;
	if (!copy_to_user(name, system_utsname.domainname, len))
		err = 0;
done:

	up_read(&uts_sem);
	return err;
}
+9 −9
Original line number Diff line number Diff line
@@ -701,21 +701,21 @@ extern void check_pending(int signum);

asmlinkage long sys_getdomainname(char __user *name, int len)
{
        int nlen;
	int err = -EFAULT;
        int nlen, err;

	if (len < 0 || len > __NEW_UTS_LEN)
		return -EINVAL;

 	down_read(&uts_sem);
 	
	nlen = strlen(system_utsname.domainname) + 1;

        if (nlen < len)
                len = nlen;
	if (len > __NEW_UTS_LEN)
		goto done;
	if (copy_to_user(name, system_utsname.domainname, len))
		goto done;

	err = -EFAULT;
	if (!copy_to_user(name, system_utsname.domainname, len))
		err = 0;
done:

	up_read(&uts_sem);
	return err;
}