forked from luck/tmp_suning_uos_patched
crypto: ccp - Prevent information leakage on export
Prevent information from leaking to userspace by doing a memset to 0 of the export state structure before setting the structure values and copying it. This prevents un-initialized padding areas from being copied into the export area. Cc: <stable@vger.kernel.org> # 3.14.x- Reported-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
0851561d9c
commit
f709b45ec4
|
@ -225,6 +225,9 @@ static int ccp_aes_cmac_export(struct ahash_request *req, void *out)
|
||||||
struct ccp_aes_cmac_req_ctx *rctx = ahash_request_ctx(req);
|
struct ccp_aes_cmac_req_ctx *rctx = ahash_request_ctx(req);
|
||||||
struct ccp_aes_cmac_exp_ctx state;
|
struct ccp_aes_cmac_exp_ctx state;
|
||||||
|
|
||||||
|
/* Don't let anything leak to 'out' */
|
||||||
|
memset(&state, 0, sizeof(state));
|
||||||
|
|
||||||
state.null_msg = rctx->null_msg;
|
state.null_msg = rctx->null_msg;
|
||||||
memcpy(state.iv, rctx->iv, sizeof(state.iv));
|
memcpy(state.iv, rctx->iv, sizeof(state.iv));
|
||||||
state.buf_count = rctx->buf_count;
|
state.buf_count = rctx->buf_count;
|
||||||
|
|
|
@ -212,6 +212,9 @@ static int ccp_sha_export(struct ahash_request *req, void *out)
|
||||||
struct ccp_sha_req_ctx *rctx = ahash_request_ctx(req);
|
struct ccp_sha_req_ctx *rctx = ahash_request_ctx(req);
|
||||||
struct ccp_sha_exp_ctx state;
|
struct ccp_sha_exp_ctx state;
|
||||||
|
|
||||||
|
/* Don't let anything leak to 'out' */
|
||||||
|
memset(&state, 0, sizeof(state));
|
||||||
|
|
||||||
state.type = rctx->type;
|
state.type = rctx->type;
|
||||||
state.msg_bits = rctx->msg_bits;
|
state.msg_bits = rctx->msg_bits;
|
||||||
state.first = rctx->first;
|
state.first = rctx->first;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user