From: Lee Daly Date: Wed, 1 Aug 2018 13:23:43 +0000 (+0100) Subject: compress/isal: fix offset check X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=7f474b4324e8280b3c4df3ee3c93d79b0f5417b0;p=dpdk.git compress/isal: fix offset check This commit fixes an offset check in decompression which was checking destination offset size against dst data_len rather than checking against dst pkt_len as required, to support single and multi-segment buffers. Fixes: 788e748d3845 ("compress/isal: support chained mbufs") Signed-off-by: Lee Daly Acked-by: Pablo de Lara --- diff --git a/drivers/compress/isal/isal_compress_pmd.c b/drivers/compress/isal/isal_compress_pmd.c index e75f48dd1c..e943336b39 100644 --- a/drivers/compress/isal/isal_compress_pmd.c +++ b/drivers/compress/isal/isal_compress_pmd.c @@ -404,9 +404,9 @@ process_isal_deflate(struct rte_comp_op *op, struct isal_comp_qp *qp, return -1; } - if (op->dst.offset > op->m_dst->pkt_len) { - ISAL_PMD_LOG(ERR, "Output mbuf(s) not big enough for length" - " and offset provided.\n"); + if (op->dst.offset >= op->m_dst->pkt_len) { + ISAL_PMD_LOG(ERR, "Output mbuf(s) not big enough" + " for offset provided.\n"); op->status = RTE_COMP_OP_STATUS_INVALID_ARGS; return -1; } @@ -483,8 +483,8 @@ process_isal_inflate(struct rte_comp_op *op, struct isal_comp_qp *qp) return -1; } - if (op->dst.offset > op->m_dst->data_len) { - ISAL_PMD_LOG(ERR, "Output mbuf not big enough for length and " + if (op->dst.offset >= op->m_dst->pkt_len) { + ISAL_PMD_LOG(ERR, "Output mbuf not big enough for " "offset provided.\n"); op->status = RTE_COMP_OP_STATUS_INVALID_ARGS; return -1;