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

Commit 2389aef4 authored by Holger Dengler's avatar Holger Dengler Committed by Martin Schwidefsky
Browse files

[S390] zcrypt: Fix error return codes.



Return EINVAL instead of EFAULT for invalid input parameter.

Signed-off-by: default avatarHolger Dengler <hd@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 7fe6f097
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -260,7 +260,7 @@ static int ICACRT_msg_to_type6CRT_msgX(struct zcrypt_device *zdev,
 * @ap_msg: pointer to AP message
 * @ap_msg: pointer to AP message
 * @xcRB: pointer to user input data
 * @xcRB: pointer to user input data
 *
 *
 * Returns 0 on success or -EFAULT.
 * Returns 0 on success or -EFAULT, -EINVAL.
 */
 */
struct type86_fmt2_msg {
struct type86_fmt2_msg {
	struct type86_hdr hdr;
	struct type86_hdr hdr;
@@ -290,12 +290,12 @@ static int XCRB_msg_to_type6CPRB_msgX(struct zcrypt_device *zdev,
		CEIL4(xcRB->request_control_blk_length) +
		CEIL4(xcRB->request_control_blk_length) +
		xcRB->request_data_length;
		xcRB->request_data_length;
	if (ap_msg->length > PCIXCC_MAX_XCRB_MESSAGE_SIZE)
	if (ap_msg->length > PCIXCC_MAX_XCRB_MESSAGE_SIZE)
		return -EFAULT;
		return -EINVAL;
	replylen = sizeof(struct type86_fmt2_msg) +
	replylen = sizeof(struct type86_fmt2_msg) +
		CEIL4(xcRB->reply_control_blk_length) +
		CEIL4(xcRB->reply_control_blk_length) +
		xcRB->reply_data_length;
		xcRB->reply_data_length;
	if (replylen > PCIXCC_MAX_XCRB_MESSAGE_SIZE)
	if (replylen > PCIXCC_MAX_XCRB_MESSAGE_SIZE)
		return -EFAULT;
		return -EINVAL;


	/* prepare type6 header */
	/* prepare type6 header */
	msg->hdr = static_type6_hdrX;
	msg->hdr = static_type6_hdrX;
@@ -314,7 +314,7 @@ static int XCRB_msg_to_type6CPRB_msgX(struct zcrypt_device *zdev,
		return -EFAULT;
		return -EFAULT;
	if (msg->cprbx.cprb_len + sizeof(msg->hdr.function_code) >
	if (msg->cprbx.cprb_len + sizeof(msg->hdr.function_code) >
	    xcRB->request_control_blk_length)
	    xcRB->request_control_blk_length)
		return -EFAULT;
		return -EINVAL;
	function_code = ((unsigned char *)&msg->cprbx) + msg->cprbx.cprb_len;
	function_code = ((unsigned char *)&msg->cprbx) + msg->cprbx.cprb_len;
	memcpy(msg->hdr.function_code, function_code, sizeof(msg->hdr.function_code));
	memcpy(msg->hdr.function_code, function_code, sizeof(msg->hdr.function_code));