[pulseaudio-discuss] [PATCH 6/6] sample: RFC: Assert validity of sample_spec

Tanu Kaskinen tanuk at iki.fi
Fri Aug 19 15:52:04 UTC 2016


On Thu, 2016-08-18 at 18:17 +0200, Peter Meerwald-Stadler wrote:
> passing an invalid sample_spec to
> pa_sample_size_of_format(),
> pa_frame_size(),
> pa_bytes_per_second(),
> pa_bytes_to_usec(),
> pa_usec_to_bytes()
> currently gives a result of 0
> 
> this is problematic as
> (a) it leads to many potential divide-by-zero issues flagged by Coverity,
> (b) pa_sample_spec_valid() is called often and the mostly unnecessary validation
> of the sample_spec cannot be optimized away due to pa_return_val_if_fail()
> (c) nobody checks the result for 0 and the behaviour is not documented
> 
> this patch replaces pa_return_val_if_fail() with pa_assert()
> 
> note that this commit changes the API!
> note that pa_return_val_if_fail() strangely logs an assertion, but then happily
> continues...
> 
> fixes numerious CIDs
> ---
>  src/pulse/sample.c | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)

Since the behaviour is undocumented, I think it's fine to use asserts.
Looks good to me.

-- 
Tanu


More information about the pulseaudio-discuss mailing list