From: Tomas Mraz Date: Wed, 12 Oct 2016 12:32:05 +0000 (+0200) Subject: Engine afalg: properly set operation type also on big endian. X-Git-Tag: OpenSSL_1_1_0c~85 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=5389388a2b327ab5d4353e98b4e258fb683cde15;p=oweals%2Fopenssl.git Engine afalg: properly set operation type also on big endian. Copy the whole ALG_OP_TYPE to CMSG_DATA. Reviewed-by: Richard Levitte Reviewed-by: Matt Caswell (cherry picked from commit 574cffd5d5b8f57f811c8d36d930205041deedee) --- diff --git a/engines/afalg/e_afalg.c b/engines/afalg/e_afalg.c index 2c13ba80ed..658de4250b 100644 --- a/engines/afalg/e_afalg.c +++ b/engines/afalg/e_afalg.c @@ -322,12 +322,12 @@ int afalg_fin_cipher_aio(afalg_aio *aio, int sfd, unsigned char *buf, } static ossl_inline void afalg_set_op_sk(struct cmsghdr *cmsg, - const unsigned int op) + const ALG_OP_TYPE op) { cmsg->cmsg_level = SOL_ALG; cmsg->cmsg_type = ALG_SET_OP; cmsg->cmsg_len = CMSG_LEN(ALG_OP_LEN); - *CMSG_DATA(cmsg) = (char)op; + memcpy(CMSG_DATA(cmsg), &op, ALG_OP_LEN); } static void afalg_set_iv_sk(struct cmsghdr *cmsg, const unsigned char *iv,