diff options
author | Hans-Frieder Vogt <hfvogt@gmx.net> | 2013-10-06 15:13:35 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-10-07 03:12:14 -0400 |
commit | 2962aecef2878e2192ac9676700469678507c24d (patch) | |
tree | 93070b11c0b9d5a3321478beb1b8645f4d12df24 /drivers/w1 | |
parent | 15c03dd4859ab16f9212238f29dd315654aa94f6 (diff) |
w1 - fix fops in w1_bus_notify
Introduce a check to make sure that fops are only called if they have
been defined by the slave module.
Without this check modules like w1_smem cause a NULL pointer dereference
bug.
Signed-off by: Hans-Frieder Vogt <hfvogt@gmx.net>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
Cc: stable <stable@vger.kernel.org> # 3.11+
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/w1')
-rw-r--r-- | drivers/w1/w1.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c index c7c64f18773d..0781217d2396 100644 --- a/drivers/w1/w1.c +++ b/drivers/w1/w1.c | |||
@@ -613,6 +613,9 @@ static int w1_bus_notify(struct notifier_block *nb, unsigned long action, | |||
613 | sl = dev_to_w1_slave(dev); | 613 | sl = dev_to_w1_slave(dev); |
614 | fops = sl->family->fops; | 614 | fops = sl->family->fops; |
615 | 615 | ||
616 | if (!fops) | ||
617 | return 0; | ||
618 | |||
616 | switch (action) { | 619 | switch (action) { |
617 | case BUS_NOTIFY_ADD_DEVICE: | 620 | case BUS_NOTIFY_ADD_DEVICE: |
618 | /* if the family driver needs to initialize something... */ | 621 | /* if the family driver needs to initialize something... */ |