ipsec: fix use of uninitialized variable
authorKonstantin Ananyev <konstantin.ananyev@intel.com>
Wed, 19 Feb 2020 00:23:02 +0000 (00:23 +0000)
committerAkhil Goyal <akhil.goyal@oss.nxp.com>
Thu, 20 Feb 2020 10:16:46 +0000 (11:16 +0100)
Defects reported by coverity scan
uninit_use_in_call: Using uninitialized element of array clen when
calling cpu_crypto_bulk.

Coverity issue: 354233, 354234
Fixes: 957394f72658 ("ipsec: support CPU crypto mode")

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
lib/librte_ipsec/esp_inb.c
lib/librte_ipsec/esp_outb.c
lib/librte_ipsec/misc.h

index 7b8ab81..96eec01 100644 (file)
@@ -737,7 +737,9 @@ cpu_inb_pkt_prepare(const struct rte_ipsec_session *ss,
                move_bad_mbufs(mb, dr, num, num - k);
 
        /* convert mbufs to iovecs and do actual crypto/auth processing */
-       cpu_crypto_bulk(ss, sa->cofs, mb, iv, aad, dgst, l4ofs, clen, k);
+       if (k != 0)
+               cpu_crypto_bulk(ss, sa->cofs, mb, iv, aad, dgst,
+                       l4ofs, clen, k);
        return k;
 }
 
index b6d9cbe..fb9d586 100644 (file)
@@ -502,7 +502,9 @@ cpu_outb_pkt_prepare(const struct rte_ipsec_session *ss,
                move_bad_mbufs(mb, dr, n, n - k);
 
        /* convert mbufs to iovecs and do actual crypto/auth processing */
-       cpu_crypto_bulk(ss, sa->cofs, mb, iv, aad, dgst, l4ofs, clen, k);
+       if (k != 0)
+               cpu_crypto_bulk(ss, sa->cofs, mb, iv, aad, dgst,
+                       l4ofs, clen, k);
        return k;
 }
 
index 53c0457..1b543ed 100644 (file)
@@ -106,7 +106,8 @@ mbuf_cut_seg_ofs(struct rte_mbuf *mb, struct rte_mbuf *ms, uint32_t ofs,
 }
 
 /*
- * process packets using sync crypto engine
+ * process packets using sync crypto engine.
+ * expects *num* to be greater than zero.
  */
 static inline void
 cpu_crypto_bulk(const struct rte_ipsec_session *ss,