[PATCH v3 05/30] baseband/acc100: check turbo dec/enc input
Maxime Coquelin
maxime.coquelin at redhat.com
Fri Oct 14 11:35:15 CEST 2022
On 10/12/22 04:53, Hernan Vargas wrote:
> Add NULL check for the turbo decoder and encoder input length.
>
> Fixes: 3bfc5f60403 ("baseband/acc100: add debug function to validate
> input")
Do not wrap the fixes line, even if checkpatch emits a warning.
> Cc: stable at dpdk.org
>
> Signed-off-by: Hernan Vargas <hernan.vargas at intel.com>
>
> Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>
> ---
> drivers/baseband/acc/rte_acc100_pmd.c | 23 ++++++++++++++++++-----
> 1 file changed, 18 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/baseband/acc/rte_acc100_pmd.c b/drivers/baseband/acc/rte_acc100_pmd.c
> index f636d4fa0f..3a008a3b88 100644
> --- a/drivers/baseband/acc/rte_acc100_pmd.c
> +++ b/drivers/baseband/acc/rte_acc100_pmd.c
> @@ -1762,6 +1762,11 @@ validate_enc_op(struct rte_bbdev_enc_op *op, struct acc_queue *q)
> return -1;
> }
>
> + if (turbo_enc->input.length == 0) {
unlikely()?
> + rte_bbdev_log(ERR, "input length null");
> + return -1;
> + }
> +
> if (turbo_enc->code_block_mode == RTE_BBDEV_TRANSPORT_BLOCK) {
> tb = &turbo_enc->tb_params;
> if ((tb->k_neg < RTE_BBDEV_TURBO_MIN_CB_SIZE
> @@ -1781,11 +1786,12 @@ validate_enc_op(struct rte_bbdev_enc_op *op, struct acc_queue *q)
> RTE_BBDEV_TURBO_MAX_CB_SIZE);
> return -1;
> }
> - if (tb->c_neg > (RTE_BBDEV_TURBO_MAX_CODE_BLOCKS - 1))
> + if (tb->c_neg > 0) {
unlikely()?
> rte_bbdev_log(ERR,
> - "c_neg (%u) is out of range 0 <= value <= %u",
> - tb->c_neg,
> - RTE_BBDEV_TURBO_MAX_CODE_BLOCKS - 1);
> + "c_neg (%u) expected to be null",
> + tb->c_neg);
> + return -1;
> + }
> if (tb->c < 1 || tb->c > RTE_BBDEV_TURBO_MAX_CODE_BLOCKS) {
> rte_bbdev_log(ERR,
> "c (%u) is out of range 1 <= value <= %u",
> @@ -2286,6 +2292,11 @@ validate_dec_op(struct rte_bbdev_dec_op *op, struct acc_queue *q)
> return -1;
> }
>
> + if (turbo_dec->input.length == 0) {
unlikely()?
> + rte_bbdev_log(ERR, "input length null");
> + return -1;
> + }
> +
> if (turbo_dec->code_block_mode == RTE_BBDEV_TRANSPORT_BLOCK) {
> tb = &turbo_dec->tb_params;
> if ((tb->k_neg < RTE_BBDEV_TURBO_MIN_CB_SIZE
> @@ -2306,11 +2317,13 @@ validate_dec_op(struct rte_bbdev_dec_op *op, struct acc_queue *q)
> RTE_BBDEV_TURBO_MAX_CB_SIZE);
> return -1;
> }
> - if (tb->c_neg > (RTE_BBDEV_TURBO_MAX_CODE_BLOCKS - 1))
> + if (tb->c_neg > (RTE_BBDEV_TURBO_MAX_CODE_BLOCKS - 1)) {
unlikely()?
> rte_bbdev_log(ERR,
> "c_neg (%u) is out of range 0 <= value <= %u",
> tb->c_neg,
> RTE_BBDEV_TURBO_MAX_CODE_BLOCKS - 1);
> + return -1;
> + }
> if (tb->c < 1 || tb->c > RTE_BBDEV_TURBO_MAX_CODE_BLOCKS) {
> rte_bbdev_log(ERR,
> "c (%u) is out of range 1 <= value <= %u",
More information about the stable
mailing list