On 23 December 2014 at 12:39, Maxim Uvarov <[email protected]> wrote:
> CID 85004:  Unchecked return value  (CHECKED_RETURN)
>         Calling "_odp_packet_copy_to_packet" without checking
>         return value (as is done elsewhere 5 out of 6 times).
>
> Signed-off-by: Maxim Uvarov <[email protected]>
> ---
>  platform/linux-generic/odp_crypto.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/platform/linux-generic/odp_crypto.c 
> b/platform/linux-generic/odp_crypto.c
> index 13c5556..09adda1 100644
> --- a/platform/linux-generic/odp_crypto.c
> +++ b/platform/linux-generic/odp_crypto.c
> @@ -350,6 +350,7 @@ odp_crypto_operation(odp_crypto_op_params_t *params,
>         enum crypto_alg_err rc_auth = ODP_CRYPTO_ALG_ERR_NONE;
>         odp_crypto_generic_session_t *session;
>         odp_crypto_generic_op_result_t *result;
> +       int ret;
>
>         *posted = 0;
>         session = (odp_crypto_generic_session_t *)(intptr_t)params->session;
> @@ -362,8 +363,11 @@ odp_crypto_operation(odp_crypto_op_params_t *params,
>         if (params->pkt != params->out_pkt) {
>                 if (odp_unlikely(ODP_PACKET_INVALID == params->out_pkt))
>                         abort();
> -               _odp_packet_copy_to_packet(params->pkt, 0, params->out_pkt, 0,
> -                                          odp_packet_len(params->pkt));
> +               ret = _odp_packet_copy_to_packet(params->pkt, 0, 
> params->out_pkt, 0,
> +                                                odp_packet_len(params->pkt));
When can odp_packet_copy_to_packet() fail? Because we need to allocate
more buffer/segments? Buffer exhaustion is a non-fatal error in a
networking application and we cannot abort the program. Roll back this
operation and return an error to the caller.

> +               if (0 != ret)
> +                       abort();
> +
>                 if (completion_event == odp_packet_to_buffer(params->pkt))
>                         completion_event =
>                                 odp_packet_to_buffer(params->out_pkt);
> --
> 1.8.5.1.163.gd7aced9
>
>
> _______________________________________________
> lng-odp mailing list
> [email protected]
> http://lists.linaro.org/mailman/listinfo/lng-odp

_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to