diff options
author | Tomas Mraz <tomas@openssl.org> | 2022-01-10 17:26:33 +0100 |
---|---|---|
committer | Pauli <pauli@openssl.org> | 2022-01-12 12:18:04 +1100 |
commit | 3755dc294d2e24b741e235550d063850464467cb (patch) | |
tree | 6558f8bdf687fb2dd3f95ed6e11c06ec3da274b7 | |
parent | b64b8e39cfb5e89c0af8b9127a414cf529192846 (diff) |
pkeyutl: Fix regression with -kdflen option
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17461)
(cherry picked from commit b82fd89d8bae1445c89ec90d1a6145fe3216d2d7)
-rw-r--r-- | apps/pkeyutl.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/apps/pkeyutl.c b/apps/pkeyutl.c index 73012e3069..891f2280e3 100644 --- a/apps/pkeyutl.c +++ b/apps/pkeyutl.c @@ -464,23 +464,23 @@ int pkeyutl_main(int argc, char **argv) } goto end; } - if (kdflen != 0) { - buf_outlen = kdflen; - rv = 1; + if (rawin) { + /* rawin allocates the buffer in do_raw_keyop() */ + rv = do_raw_keyop(pkey_op, mctx, pkey, in, filesize, NULL, 0, + &buf_out, (size_t *)&buf_outlen); } else { - if (rawin) { - /* rawin allocates the buffer in do_raw_keyop() */ - rv = do_raw_keyop(pkey_op, mctx, pkey, in, filesize, NULL, 0, - &buf_out, (size_t *)&buf_outlen); + if (kdflen != 0) { + buf_outlen = kdflen; + rv = 1; } else { rv = do_keyop(ctx, pkey_op, NULL, (size_t *)&buf_outlen, buf_in, (size_t)buf_inlen); - if (rv > 0 && buf_outlen != 0) { - buf_out = app_malloc(buf_outlen, "buffer output"); - rv = do_keyop(ctx, pkey_op, - buf_out, (size_t *)&buf_outlen, - buf_in, (size_t)buf_inlen); - } + } + if (rv > 0 && buf_outlen != 0) { + buf_out = app_malloc(buf_outlen, "buffer output"); + rv = do_keyop(ctx, pkey_op, + buf_out, (size_t *)&buf_outlen, + buf_in, (size_t)buf_inlen); } } if (rv <= 0) { |