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

Commit 2b3097a2 authored by Peter Hurley's avatar Peter Hurley Committed by Linus Torvalds
Browse files

ipc: set EFAULT as default error in load_msg()

parent da085d45
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ struct msg_msg *load_msg(const void __user *src, int len)
{
	struct msg_msg *msg;
	struct msg_msgseg *seg;
	int err;
	int err = -EFAULT;
	int alen;

	msg = alloc_msg(len);
@@ -92,20 +92,16 @@ struct msg_msg *load_msg(const void __user *src, int len)
		return ERR_PTR(-ENOMEM);

	alen = min(len, DATALEN_MSG);
	if (copy_from_user(msg + 1, src, alen)) {
		err = -EFAULT;
	if (copy_from_user(msg + 1, src, alen))
		goto out_err;
	}

	for (seg = msg->next; seg != NULL; seg = seg->next) {
		len -= alen;
		src = (char __user *)src + alen;
		alen = min(len, DATALEN_SEG);
		if (copy_from_user(seg + 1, src, alen)) {
			err = -EFAULT;
		if (copy_from_user(seg + 1, src, alen))
			goto out_err;
	}
	}

	err = security_msg_msg_alloc(msg);
	if (err)