All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Herrmann <dh.herrmann@gmail.com>
To: "linux-fbdev@vger.kernel.org" <linux-fbdev@vger.kernel.org>
Cc: James Bates <james.h.bates@gmail.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
	David Herrmann <dh.herrmann@gmail.com>
Subject: Re: [PATCH v3] efifb: prevent null-deref when iterating dmi_list
Date: Sat, 19 Oct 2013 12:40:02 +0200	[thread overview]
Message-ID: <CANq1E4SnQc-si4v1qACD=g=ZwJ6NOnm-fcDeRy1Vg4rcPN607A@mail.gmail.com> (raw)
In-Reply-To: <1380732219-5458-1-git-send-email-dh.herrmann@gmail.com>

ping

On Wed, Oct 2, 2013 at 6:43 PM, David Herrmann <dh.herrmann@gmail.com> wrote:
> From: James Bates <james.h.bates@gmail.com>
>
> The dmi_list array is initialized using gnu designated initializers, and
> therefore may contain fewer explicitly defined entries as there are
> elements in it. This is because the enum above with M_xyz constants
> contains more items than the designated initializer. Those elements not
> explicitly initialized are implicitly set to 0.
>
> Now efifb_setup() loops through all these array elements, and performs
> a strcmp on each item. For non explicitly initialized elements this will
> be a null pointer:
>
> This patch swaps the check order in the if statement, thus checks first
> whether dmi_list[i].base is null.
>
> Signed-off-by: James Bates <james.h.bates@gmail.com>
> Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
> ---
> v3: fixes the "Author" field and James' email address
>
>  drivers/video/efifb.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/video/efifb.c b/drivers/video/efifb.c
> index 7f9ff75..fcb9500 100644
> --- a/drivers/video/efifb.c
> +++ b/drivers/video/efifb.c
> @@ -108,8 +108,8 @@ static int efifb_setup(char *options)
>                         if (!*this_opt) continue;
>
>                         for (i = 0; i < M_UNKNOWN; i++) {
> -                               if (!strcmp(this_opt, efifb_dmi_list[i].optname) &&
> -                                   efifb_dmi_list[i].base != 0) {
> +                               if (efifb_dmi_list[i].base != 0 &&
> +                                   !strcmp(this_opt, efifb_dmi_list[i].optname)) {
>                                         screen_info.lfb_base = efifb_dmi_list[i].base;
>                                         screen_info.lfb_linelength = efifb_dmi_list[i].stride;
>                                         screen_info.lfb_width = efifb_dmi_list[i].width;
> --
> 1.8.4
>

WARNING: multiple messages have this Message-ID (diff)
From: David Herrmann <dh.herrmann@gmail.com>
To: "linux-fbdev@vger.kernel.org" <linux-fbdev@vger.kernel.org>
Cc: James Bates <james.h.bates@gmail.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
	David Herrmann <dh.herrmann@gmail.com>
Subject: Re: [PATCH v3] efifb: prevent null-deref when iterating dmi_list
Date: Sat, 19 Oct 2013 10:40:02 +0000	[thread overview]
Message-ID: <CANq1E4SnQc-si4v1qACD=g=ZwJ6NOnm-fcDeRy1Vg4rcPN607A@mail.gmail.com> (raw)
In-Reply-To: <1380732219-5458-1-git-send-email-dh.herrmann@gmail.com>

ping

On Wed, Oct 2, 2013 at 6:43 PM, David Herrmann <dh.herrmann@gmail.com> wrote:
> From: James Bates <james.h.bates@gmail.com>
>
> The dmi_list array is initialized using gnu designated initializers, and
> therefore may contain fewer explicitly defined entries as there are
> elements in it. This is because the enum above with M_xyz constants
> contains more items than the designated initializer. Those elements not
> explicitly initialized are implicitly set to 0.
>
> Now efifb_setup() loops through all these array elements, and performs
> a strcmp on each item. For non explicitly initialized elements this will
> be a null pointer:
>
> This patch swaps the check order in the if statement, thus checks first
> whether dmi_list[i].base is null.
>
> Signed-off-by: James Bates <james.h.bates@gmail.com>
> Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
> ---
> v3: fixes the "Author" field and James' email address
>
>  drivers/video/efifb.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/video/efifb.c b/drivers/video/efifb.c
> index 7f9ff75..fcb9500 100644
> --- a/drivers/video/efifb.c
> +++ b/drivers/video/efifb.c
> @@ -108,8 +108,8 @@ static int efifb_setup(char *options)
>                         if (!*this_opt) continue;
>
>                         for (i = 0; i < M_UNKNOWN; i++) {
> -                               if (!strcmp(this_opt, efifb_dmi_list[i].optname) &&
> -                                   efifb_dmi_list[i].base != 0) {
> +                               if (efifb_dmi_list[i].base != 0 &&
> +                                   !strcmp(this_opt, efifb_dmi_list[i].optname)) {
>                                         screen_info.lfb_base = efifb_dmi_list[i].base;
>                                         screen_info.lfb_linelength = efifb_dmi_list[i].stride;
>                                         screen_info.lfb_width = efifb_dmi_list[i].width;
> --
> 1.8.4
>

  reply	other threads:[~2013-10-19 10:40 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-02 16:40 [PATCH v2] efifb: prevent null-deref when iterating dmi_list David Herrmann
2013-10-02 16:40 ` David Herrmann
2013-10-02 16:43 ` [PATCH v3] " David Herrmann
2013-10-02 16:43   ` David Herrmann
2013-10-19 10:40   ` David Herrmann [this message]
2013-10-19 10:40     ` David Herrmann
2013-10-29 10:42   ` Tomi Valkeinen
2013-10-29 10:42     ` Tomi Valkeinen
2013-10-31 10:45 ` [PATCH v2] " Jean-Christophe PLAGNIOL-VILLARD
2013-10-31 10:45   ` Jean-Christophe PLAGNIOL-VILLARD
2013-10-31 16:17   ` David Herrmann
2013-10-31 16:17     ` David Herrmann
2013-11-01 11:10     ` Jean-Christophe PLAGNIOL-VILLARD
2013-11-01 11:10       ` Jean-Christophe PLAGNIOL-VILLARD
2013-11-01 12:09       ` David Herrmann
2013-11-01 12:09         ` David Herrmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CANq1E4SnQc-si4v1qACD=g=ZwJ6NOnm-fcDeRy1Vg4rcPN607A@mail.gmail.com' \
    --to=dh.herrmann@gmail.com \
    --cc=james.h.bates@gmail.com \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=plagnioj@jcrosoft.com \
    --cc=tomi.valkeinen@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.