Re: [PATCH] android/hal-sco: Fix divide by zero

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tuesday 31 of March 2015 17:03:30 Szymon Janc wrote:
> audio_stream_in_frame_size or audio_stream_frame_size can return 0 so
> this needs to be checked before divide.
> ---
>  android/hal-sco.c | 20 +++++++++++++-------
>  1 file changed, 13 insertions(+), 7 deletions(-)
> 
> diff --git a/android/hal-sco.c b/android/hal-sco.c
> index 380b2a8..2c95866 100644
> --- a/android/hal-sco.c
> +++ b/android/hal-sco.c
> @@ -1054,17 +1054,23 @@ static ssize_t in_read(struct audio_stream_in
> *stream, void *buffer, size_t bytes)
>  {
>  	struct sco_stream_in *in = (struct sco_stream_in *) stream;
> -#if ANDROID_VERSION >= PLATFORM_VER(5, 0, 0)
> -	size_t frame_size = audio_stream_in_frame_size(&in->stream);
> -#else
> -	size_t frame_size = audio_stream_frame_size(&stream->common);
> -#endif
> -	size_t frame_num = bytes / frame_size;
> -	size_t input_frame_num = frame_num;
> +	size_t frame_size, frame_num, input_frame_num;
>  	void *read_buf = buffer;
>  	size_t total = bytes;
>  	int ret;
> 
> +#if ANDROID_VERSION >= PLATFORM_VER(5, 0, 0)
> +	frame_size = audio_stream_in_frame_size(&in->stream);
> +#else
> +	frame_size = audio_stream_frame_size(&stream->common);
> +#endif
> +
> +	if (!frame_size)
> +		return -1;
> +
> +	frame_num = bytes / frame_size;
> +	input_frame_num = frame_num;
> +
>  	DBG("Read from fd %d bytes %zu", sco_fd, bytes);
> 
>  	if (ipc_get_sco_fd(&in->bd_addr) != SCO_STATUS_SUCCESS)

Applied.

-- 
BR
Szymon Janc
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux