Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1495313
| From | Geert Uytterhoeven <geert+renesas@glider.be> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 3/4] base: soc: Check for NULL SoC device attributes |
| Date | 2016-10-04 11:20 +0200 |
| Message-ID | <sou3f-Iv-15@gated-at.bofh.it> (permalink) |
| References | <sotTA-Ep-17@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
If soc_device_match() is used to check the value of a specific attribute that is not present for the current SoC, the kernel crashes with a NULL pointer dereference. Fix this by explicitly checking for the absence of a needed property, and considering this a non-match. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> --- drivers/base/soc.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/base/soc.c b/drivers/base/soc.c index 37c087096b1c5675..545cc9cf2789fe07 100644 --- a/drivers/base/soc.c +++ b/drivers/base/soc.c @@ -185,19 +185,23 @@ static int soc_device_match_one(struct device *dev, void *arg) const struct soc_device_attribute *match = arg; if (match->machine && - !glob_match(match->machine, soc_dev->attr->machine)) + (!soc_dev->attr->machine || + !glob_match(match->machine, soc_dev->attr->machine))) return 0; if (match->family && - !glob_match(match->family, soc_dev->attr->family)) + (!soc_dev->attr->family || + !glob_match(match->family, soc_dev->attr->family))) return 0; if (match->revision && - !glob_match(match->revision, soc_dev->attr->revision)) + (!soc_dev->attr->revision || + !glob_match(match->revision, soc_dev->attr->revision))) return 0; if (match->soc_id && - !glob_match(match->soc_id, soc_dev->attr->soc_id)) + (!soc_dev->attr->soc_id || + !glob_match(match->soc_id, soc_dev->attr->soc_id))) return 0; return 1; -- 1.9.1
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 0/4] soc: renesas: Identify SoC and register with the SoC bus Geert Uytterhoeven <geert+renesas@glider.be> - 2016-10-04 11:20 +0200
[PATCH 1/4] base: soc: Early register bus when needed Geert Uytterhoeven <geert+renesas@glider.be> - 2016-10-04 11:20 +0200
Re: [PATCH 1/4] base: soc: Early register bus when needed Arnd Bergmann <arnd@arndb.de> - 2016-10-10 16:20 +0200
[PATCH 3/4] base: soc: Check for NULL SoC device attributes Geert Uytterhoeven <geert+renesas@glider.be> - 2016-10-04 11:20 +0200
Re: [PATCH 3/4] base: soc: Check for NULL SoC device attributes Arnd Bergmann <arnd@arndb.de> - 2016-10-10 16:20 +0200
Re: [PATCH 0/4] soc: renesas: Identify SoC and register with the SoC bus Arnd Bergmann <arnd@arndb.de> - 2016-10-10 16:30 +0200
csiph-web