On Wed, Nov 21, 2012 at 12:54 AM, Bjørn Mork <[email protected]> wrote:
> commit 98cb7e44 ([SCSI] megaraid_sas: Sanity check user
> supplied length before passing it to dma_alloc_coherent())
> introduced a memory leak.  Memory allocated for entries
> following zero length SGL entries will not be freed.
>
> Reference: http://bugs.debian.org/688198
> Cc: <[email protected]>
> Signed-off-by: Bjørn Mork <[email protected]>
> ---
>  drivers/scsi/megaraid/megaraid_sas_base.c |   10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c 
> b/drivers/scsi/megaraid/megaraid_sas_base.c
> index d2c5366..12b6be4 100644
> --- a/drivers/scsi/megaraid/megaraid_sas_base.c
> +++ b/drivers/scsi/megaraid/megaraid_sas_base.c
> @@ -4854,10 +4854,12 @@ megasas_mgmt_fw_ioctl(struct megasas_instance 
> *instance,
>                                     sense, sense_handle);
>         }
>
> -       for (i = 0; i < ioc->sge_count && kbuff_arr[i]; i++) {
> -               dma_free_coherent(&instance->pdev->dev,
> -                                   kern_sge32[i].length,
> -                                   kbuff_arr[i], kern_sge32[i].phys_addr);
> +       for (i = 0; i < ioc->sge_count; i++) {
> +               if (kbuff_arr[i])
> +                       dma_free_coherent(&instance->pdev->dev,
> +                                         kern_sge32[i].length,
> +                                         kbuff_arr[i],
> +                                         kern_sge32[i].phys_addr);
>         }
>
>         megasas_return_cmd(instance, cmd);

Acked-by: Adam Radford <[email protected]>
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to