[alsa-devel] [PATCH] ALSA: asihpi - Clarify adapter index validity check.
Takashi Iwai
tiwai at suse.de
Thu Jul 28 07:43:16 CEST 2011
At Thu, 28 Jul 2011 09:50:17 +1200,
linux at audioscience.com wrote:
>
> From: Eliot Blennerhassett <eblennerhassett at audioscience.com>
>
> Avoids assigning possibly invalid address to pa, even if it
> is never dereferenced.
>
> Signed-off-by: Eliot Blennerhassett <eblennerhassett at audioscience.com>
> ---
> sound/pci/asihpi/hpioctl.c | 19 ++++++++++++-------
> 1 files changed, 12 insertions(+), 7 deletions(-)
>
> diff --git a/sound/pci/asihpi/hpioctl.c b/sound/pci/asihpi/hpioctl.c
> index 9683f84..a32502e 100644
> --- a/sound/pci/asihpi/hpioctl.c
> +++ b/sound/pci/asihpi/hpioctl.c
> @@ -177,16 +177,21 @@ long asihpi_hpi_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
> } else {
> u16 __user *ptr = NULL;
> u32 size = 0;
> -
> + u32 adapter_present;
> /* -1=no data 0=read from user mem, 1=write to user mem */
> int wrflag = -1;
> - u32 adapter = hm->h.adapter_index;
> - struct hpi_adapter *pa = &adapters[adapter];
> + struct hpi_adapter *pa;
> +
> + if (hm->h.adapter_index < HPI_MAX_ADAPTERS) {
> + pa = &adapters[hm->h.adapter_index];
> + adapter_present = pa->type;
> + } else {
> + adapter_present = 0;
> + }
>
> - if ((adapter >= HPI_MAX_ADAPTERS) || (!pa->type)) {
> - hpi_init_response(&hr->r0, HPI_OBJ_ADAPTER,
> - HPI_ADAPTER_OPEN,
> - HPI_ERROR_BAD_ADAPTER_NUMBER);
> + if (!adapter_present) {
> + hpi_init_response(&hr->r0, hm->h.object,
> + hm->h.function, HPI_ERROR_BAD_ADAPTER_NUMBER);
Here you are initializing to different values (from HPI_OBJ_ADAPTER to
hm->h.object, etc). Is it intentional?
thanks,
Takashi
More information about the Alsa-devel
mailing list