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

Commit 077090af authored by Geliang Tang's avatar Geliang Tang Committed by Kees Cook
Browse files

pstore: use memdup_user



Use memdup_user() helper instead of open-coding to simplify the code.

Signed-off-by: default avatarGeliang Tang <geliangtang@gmail.com>
Signed-off-by: default avatarKees Cook <keescook@chromium.org>
parent d3762358
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -653,19 +653,16 @@ static int pstore_write_user_compat(struct pstore_record *record,
	if (record->buf)
		return -EINVAL;

	record->buf = kmalloc(record->size, GFP_KERNEL);
	if (!record->buf)
		return -ENOMEM;

	if (unlikely(copy_from_user(record->buf, buf, record->size))) {
		ret = -EFAULT;
	record->buf = memdup_user(buf, record->size);
	if (unlikely(IS_ERR(record->buf))) {
		ret = PTR_ERR(record->buf);
		goto out;
	}

	ret = record->psi->write(record);

out:
	kfree(record->buf);
out:
	record->buf = NULL;

	return unlikely(ret < 0) ? ret : record->size;