[2/9] crypto/octeontx: fix possible NULL deference
Checks
Commit Message
Coverity complains that ctrl_flags is set to NULL at the start
of the function and it may not have been set before there is a
jump to fc_success and it is dereferenced.
Check for NULL before dereference.
312fc_success:
CID 344983 (#1 of 1): Explicit null dereferenced
(FORWARD_NULL)7. var_deref_op: Dereferencing null pointer ctrl_flags.
313 *ctrl_flags = rte_cpu_to_be_64(*ctrl_flags);
Coverity issue: 344983
Fixes: 6cc54096520d ("crypto/octeontx: add supported sessions")
Cc: ndabilpuram@marvell.com
Cc: stable@dpdk.org
Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
---
There may be further rework needed to set it to the correct value,
but for now at least prevent the NULL dereference.
---
drivers/common/cpt/cpt_ucode.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Comments
On Tue, Oct 1, 2019 at 3:04 PM Kevin Traynor <ktraynor@redhat.com> wrote:
>
> Coverity complains that ctrl_flags is set to NULL at the start
> of the function and it may not have been set before there is a
> jump to fc_success and it is dereferenced.
>
> Check for NULL before dereference.
>
> 312fc_success:
> CID 344983 (#1 of 1): Explicit null dereferenced
> (FORWARD_NULL)7. var_deref_op: Dereferencing null pointer ctrl_flags.
> 313 *ctrl_flags = rte_cpu_to_be_64(*ctrl_flags);
>
> Coverity issue: 344983
> Fixes: 6cc54096520d ("crypto/octeontx: add supported sessions")
> Cc: ndabilpuram@marvell.com
> Cc: stable@dpdk.org
Cc: maintainer
>
> Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
>
> ---
>
> There may be further rework needed to set it to the correct value,
> but for now at least prevent the NULL dereference.
> ---
> drivers/common/cpt/cpt_ucode.h | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/common/cpt/cpt_ucode.h b/drivers/common/cpt/cpt_ucode.h
> index 7d9c31e17..fad978c6e 100644
> --- a/drivers/common/cpt/cpt_ucode.h
> +++ b/drivers/common/cpt/cpt_ucode.h
> @@ -311,5 +311,6 @@ cpt_fc_ciph_set_key(void *ctx, cipher_type_t type, const uint8_t *key,
>
> fc_success:
> - *ctrl_flags = rte_cpu_to_be_64(*ctrl_flags);
> + if (ctrl_flags != NULL)
> + *ctrl_flags = rte_cpu_to_be_64(*ctrl_flags);
>
> success:
> --
> 2.21.0
>
Reviewed-by: David Marchand <david.marchand@redhat.com>
@@ -311,5 +311,6 @@ cpt_fc_ciph_set_key(void *ctx, cipher_type_t type, const uint8_t *key,
fc_success:
- *ctrl_flags = rte_cpu_to_be_64(*ctrl_flags);
+ if (ctrl_flags != NULL)
+ *ctrl_flags = rte_cpu_to_be_64(*ctrl_flags);
success: