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
