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

Commit b7310105 authored by Al Viro's avatar Al Viro
Browse files

s390 keyboard.c: don't open-code strndup_user()



... especially not with off-by-ones (strnlen_user() already includes NUL
into its count).

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 8f3ba02d
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -433,12 +433,7 @@ do_kdgkb_ioctl(struct kbd_data *kbd, struct kbsentry __user *u_kbs,
	case KDSKBSENT:
		if (!perm)
			return -EPERM;
		len = strnlen_user(u_kbs->kb_string, sizeof(u_kbs->kb_string));
		if (!len)
			return -EFAULT;
		if (len > sizeof(u_kbs->kb_string))
			return -EINVAL;
		p = memdup_user_nul(u_kbs->kb_string, len);
		p = strndup_user(u_kbs->kb_string, sizeof(u_kbs->kb_string));
		if (IS_ERR(p))
			return PTR_ERR(p);
		kfree(kbd->func_table[kb_func]);