X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=crypto%2Flrw.c;h=1d813a6d3fecb7a3743ce35a9c5e18fa002cf90f;hb=HEAD;hp=cbbd7c50ad19b306cf0e424ad24533beade38764;hpb=bbecb1cfcca55f98cfcb62fa36a32d79975d8816;p=mirror_ubuntu-bionic-kernel.git diff --git a/crypto/lrw.c b/crypto/lrw.c index cbbd7c50ad19..9c5bf4afe36f 100644 --- a/crypto/lrw.c +++ b/crypto/lrw.c @@ -139,7 +139,12 @@ static inline int get_index128(be128 *block) return x + ffz(val); } - return x; + /* + * If we get here, then x == 128 and we are incrementing the counter + * from all ones to all zeros. This means we must return index 127, i.e. + * the one corresponding to key2*{ 1,...,1 }. + */ + return 127; } static int post_crypt(struct skcipher_request *req) @@ -313,7 +318,7 @@ static void exit_crypt(struct skcipher_request *req) rctx->left = 0; if (rctx->ext) - kfree(rctx->ext); + kzfree(rctx->ext); } static int do_encrypt(struct skcipher_request *req, int err)