lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20160902144753.31334-2-lambert.quentin@gmail.com>
Date:   Fri,  2 Sep 2016 16:47:52 +0200
From:   Quentin Lambert <lambert.quentin@...il.com>
To:     Giovanni Cabiddu <giovanni.cabiddu@...el.com>,
        Salvatore Benedetto <salvatore.benedetto@...el.com>,
        Herbert Xu <herbert@...dor.apana.org.au>,
        "David S. Miller" <davem@...emloft.net>, qat-linux@...el.com,
        linux-crypto@...r.kernel.org, linux-kernel@...r.kernel.org
Cc:     kernel-janitors@...r.kernel.org,
        Quentin Lambert <lambert.quentin@...il.com>
Subject: [PATCH v2 1/2] crypto: qat - introduces a variable to handle error codes

Most error code used to jump to a label that lead to a "return -EFAULT"
statement. This patch introduces a variable that stores the error code
so that other error branches can use the same label to exit.

Signed-off-by: Quentin Lambert <lambert.quentin@...il.com>

---
 drivers/crypto/qat/qat_common/qat_uclo.c |   13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

--- a/drivers/crypto/qat/qat_common/qat_uclo.c
+++ b/drivers/crypto/qat/qat_common/qat_uclo.c
@@ -966,6 +966,7 @@ static int qat_uclo_parse_uof_obj(struct
 {
 	struct icp_qat_uclo_objhandle *obj_handle = handle->obj_handle;
 	unsigned int ae;
+	int ret;
 
 	obj_handle->uword_buf = kcalloc(UWORD_CPYBUF_SIZE, sizeof(uint64_t),
 					GFP_KERNEL);
@@ -987,29 +988,35 @@ static int qat_uclo_parse_uof_obj(struct
 	    !qat_uclo_map_str_table(obj_handle->obj_hdr, ICP_QAT_UOF_STRT,
 				    &obj_handle->str_table)) {
 		pr_err("QAT: UOF doesn't have effective images\n");
+		ret = -EFAULT;
 		goto out_err;
 	}
 	obj_handle->uimage_num =
 		qat_uclo_map_uimage(obj_handle, obj_handle->ae_uimage,
 				    ICP_QAT_UCLO_MAX_AE * ICP_QAT_UCLO_MAX_CTX);
-	if (!obj_handle->uimage_num)
+	if (!obj_handle->uimage_num) {
+		ret = -EFAULT;
 		goto out_err;
+	}
 	if (qat_uclo_map_ae(handle, handle->hal_handle->ae_max_num)) {
 		pr_err("QAT: Bad object\n");
+		ret = -EFAULT;
 		goto out_check_uof_aemask_err;
 	}
 	qat_uclo_init_uword_num(handle);
 	qat_uclo_map_initmem_table(&obj_handle->encap_uof_obj,
 				   &obj_handle->init_mem_tab);
-	if (qat_uclo_set_ae_mode(handle))
+	if (qat_uclo_set_ae_mode(handle)) {
+		ret = -EFAULT;
 		goto out_check_uof_aemask_err;
+	}
 	return 0;
 out_check_uof_aemask_err:
 	for (ae = 0; ae < obj_handle->uimage_num; ae++)
 		kfree(obj_handle->ae_uimage[ae].page);
 out_err:
 	kfree(obj_handle->uword_buf);
-	return -EFAULT;
+	return ret;
 }
 
 static int qat_uclo_map_suof_file_hdr(struct icp_qat_fw_loader_handle *handle,

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ