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

Commit debd6657 authored by Dan Carpenter's avatar Dan Carpenter Committed by Greg Kroah-Hartman
Browse files

scsi: lpfc: Fix some error codes in debugfs

commit 19f1bc7edf0f97186810e13a88f5b62069d89097 upstream.

If copy_from_user() or kstrtoull() fail then the correct behavior is to
return a negative error code.

Link: https://lore.kernel.org/r/YEsbU/UxYypVrC7/@mwanda


Fixes: f9bb2da1 ("[SCSI] lpfc 8.3.27: T10 additions for SLI4")
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 18905249
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -1061,7 +1061,7 @@ lpfc_debugfs_dif_err_write(struct file *file, const char __user *buf,
	memset(dstbuf, 0, 33);
	memset(dstbuf, 0, 33);
	size = (nbytes < 32) ? nbytes : 32;
	size = (nbytes < 32) ? nbytes : 32;
	if (copy_from_user(dstbuf, buf, size))
	if (copy_from_user(dstbuf, buf, size))
		return 0;
		return -EFAULT;


	if (dent == phba->debug_InjErrLBA) {
	if (dent == phba->debug_InjErrLBA) {
		if ((buf[0] == 'o') && (buf[1] == 'f') && (buf[2] == 'f'))
		if ((buf[0] == 'o') && (buf[1] == 'f') && (buf[2] == 'f'))
@@ -1069,7 +1069,7 @@ lpfc_debugfs_dif_err_write(struct file *file, const char __user *buf,
	}
	}


	if ((tmp == 0) && (kstrtoull(dstbuf, 0, &tmp)))
	if ((tmp == 0) && (kstrtoull(dstbuf, 0, &tmp)))
		return 0;
		return -EINVAL;


	if (dent == phba->debug_writeGuard)
	if (dent == phba->debug_writeGuard)
		phba->lpfc_injerr_wgrd_cnt = (uint32_t)tmp;
		phba->lpfc_injerr_wgrd_cnt = (uint32_t)tmp;