lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAMuHMdWfqh_AKyE+od_0yVPP6Lkv8LUAR1dWf8Df94W7b4qxLA@mail.gmail.com>
Date:   Wed, 26 Aug 2020 11:07:15 +0200
From:   Geert Uytterhoeven <geert@...ux-m68k.org>
To:     Qinglang Miao <miaoqinglang@...wei.com>
Cc:     Stephen Rothwell <sfr@...b.auug.org.au>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        linux-m68k <linux-m68k@...ts.linux-m68k.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH -next] m68k/amiga: missing platform_device_unregister() on
 error in amiga_init_devices()

Hi Qinglang,

On Tue, Jul 28, 2020 at 4:24 AM Qinglang Miao <miaoqinglang@...wei.com> wrote:
> Add the missing platform_device_unregister() before return
> from amiga_init_devices() in the error handling case.
>
> Signed-off-by: Qinglang Miao <miaoqinglang@...wei.com>

Thanks for your patch!

> --- a/arch/m68k/amiga/platform.c
> +++ b/arch/m68k/amiga/platform.c
> @@ -188,8 +188,10 @@ static int __init amiga_init_devices(void)
>                         return PTR_ERR(pdev);
>                 error = platform_device_add_data(pdev, &a1200_ide_pdata,
>                                                  sizeof(a1200_ide_pdata));

The only reason why platform_device_add_data() can fail is because the
system ran out of memory.  If that's the case this early, the whole
system will fail to work anyway, and it doesn't matter that the IDE
driver will crash later due to missing platform data.

So I don't think it helps to increase kernel size by adding more error
handling.

> -               if (error)
> +               if (error) {
> +                       platform_device_unregister(pdev);
>                         return error;
> +               }
>         }
>
>         if (AMIGAHW_PRESENT(A4000_IDE)) {
> @@ -199,8 +201,10 @@ static int __init amiga_init_devices(void)
>                         return PTR_ERR(pdev);
>                 error = platform_device_add_data(pdev, &a4000_ide_pdata,
>                                                  sizeof(a4000_ide_pdata));
> -               if (error)
> +               if (error) {
> +                       platform_device_unregister(pdev);

Likewise.

>                         return error;
> +               }

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@...ux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ