[alsa-devel] [PATCH] ALSA: hda/ca0132 - Avoid division by zero in dspxfr_one_seg()
Takashi Iwai
tiwai at suse.de
Thu Mar 7 09:18:20 CET 2013
At Thu, 7 Mar 2013 00:13:51 -0500,
Xi Wang wrote:
>
> Move the zero check `hda_frame_size_words == 0' before the modulus
> `buffer_size_words % hda_frame_size_words'.
>
> Also remove the redundant null check `buffer_addx == NULL'.
>
> Signed-off-by: Xi Wang <xi.wang at gmail.com>
Thanks, applied.
Takashi
> ---
> sound/pci/hda/patch_ca0132.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/sound/pci/hda/patch_ca0132.c b/sound/pci/hda/patch_ca0132.c
> index db02c1e..eefc456 100644
> --- a/sound/pci/hda/patch_ca0132.c
> +++ b/sound/pci/hda/patch_ca0132.c
> @@ -2298,6 +2298,11 @@ static int dspxfr_one_seg(struct hda_codec *codec,
> hda_frame_size_words = ((sample_rate_div == 0) ? 0 :
> (num_chans * sample_rate_mul / sample_rate_div));
>
> + if (hda_frame_size_words == 0) {
> + snd_printdd(KERN_ERR "frmsz zero\n");
> + return -EINVAL;
> + }
> +
> buffer_size_words = min(buffer_size_words,
> (unsigned int)(UC_RANGE(chip_addx, 1) ?
> 65536 : 32768));
> @@ -2308,8 +2313,7 @@ static int dspxfr_one_seg(struct hda_codec *codec,
> chip_addx, hda_frame_size_words, num_chans,
> sample_rate_mul, sample_rate_div, buffer_size_words);
>
> - if ((buffer_addx == NULL) || (hda_frame_size_words == 0) ||
> - (buffer_size_words < hda_frame_size_words)) {
> + if (buffer_size_words < hda_frame_size_words) {
> snd_printdd(KERN_ERR "dspxfr_one_seg:failed\n");
> return -EINVAL;
> }
> --
> 1.7.10.4
>
More information about the Alsa-devel
mailing list