Fix NULL dereference, out-of-bound, bad bit shift issues
reported by coverity scan.

Coverity issue: 384440, 384435, 384433, 384429
Fixes: 36128a67c27 ("examples/fips_validation: add asymmetric validation")
Cc: sta...@dpdk.org

Signed-off-by: Gowrishankar Muthukrishnan <gmuthukri...@marvell.com>
Acked-by: Brian Dooley <brian.doo...@intel.com>
---
v2:
 - no changes
--

 examples/fips_validation/fips_validation_rsa.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/examples/fips_validation/fips_validation_rsa.c 
b/examples/fips_validation/fips_validation_rsa.c
index f675b51051..55f81860a0 100644
--- a/examples/fips_validation/fips_validation_rsa.c
+++ b/examples/fips_validation/fips_validation_rsa.c
@@ -328,6 +328,9 @@ parse_test_rsa_json_interim_writeback(struct fips_val *val)
                if (prepare_vec_rsa() < 0)
                        return -1;
 
+               if (!vec.rsa.e.val)
+                       return -1;
+
                writeback_hex_str("", info.one_line_text, &vec.rsa.n);
                obj = json_string(info.one_line_text);
                json_object_set_new(json_info.json_write_group, "n", obj);
@@ -474,7 +477,7 @@ fips_test_randomize_message(struct fips_val *msg, struct 
fips_val *rand)
        uint16_t rv_len;
 
        if (!msg->val || !rand->val || rand->len > RV_BUF_LEN
-               || msg->len > FIPS_TEST_JSON_BUF_LEN)
+               || msg->len > (FIPS_TEST_JSON_BUF_LEN - 1))
                return -EINVAL;
 
        memset(rv, 0, sizeof(rv));
@@ -503,7 +506,7 @@ fips_test_randomize_message(struct fips_val *msg, struct 
fips_val *rand)
                m[i + j] ^= rv[j];
 
        m[i + j] = ((uint8_t *)&rv_bitlen)[0];
-       m[i + j + 1] = (((uint8_t *)&rv_bitlen)[1] >> 8) & 0xFF;
+       m[i + j + 1] = ((uint8_t *)&rv_bitlen)[1];
 
        rte_free(msg->val);
        msg->len = (rv_bitlen + m_bitlen + 16) / 8;
-- 
2.25.1

Reply via email to