diff options
author | Tomas Mraz <tomas@openssl.org> | 2022-01-10 17:26:33 +0100 |
---|---|---|
committer | Pauli <pauli@openssl.org> | 2022-01-12 12:17:34 +1100 |
commit | b82fd89d8bae1445c89ec90d1a6145fe3216d2d7 (patch) | |
tree | dd8ba3714d42af63267dd9b56c13e7d75d12cf29 | |
parent | f5e97b3702916e69873746108ac7c100a31d2241 (diff) |
pkeyutl: Fix regression with -kdflen option
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17461)
-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 9e18dfc0e9..01c4f064d2 100644 --- a/apps/pkeyutl.c +++ b/apps/pkeyutl.c @@ -463,23 +463,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) { |