OSDN Git Service

efifb: prevent null-deref when iterating dmi_list
authorJames Bates <james.h.bates@gmail.com>
Wed, 2 Oct 2013 16:43:39 +0000 (18:43 +0200)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Tue, 29 Oct 2013 10:41:46 +0000 (12:41 +0200)
commit55aa42f2e690157e254a6a6989f5f4ac928b35c8
treed3fcbcc20f2a6e167335dab8ceaeb5bdc23fa41b
parente8ddb0cfa18dfa4d85d6c420c967850d430b07c6
efifb: prevent null-deref when iterating dmi_list

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>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/video/efifb.c