linux-hardened/drivers/watchdog
Jiri Slaby d406577526 watchdog: sbc_fitpc2_wdt, fix crash on systems without DMI_BOARD_NAME
Some systems don't provide DMI_BOARD_NAME in their DMI tables. Avoid
crash in such situations in fitpc2_wdt_init.

The fix is to check if the dmi_get_system_info return value is NULL.

The oops:
BUG: unable to handle kernel NULL pointer dereference at           (null)
IP: [<ffffffff81253ae6>] strstr+0x26/0xa0
PGD 3966e067 PUD 39605067 PMD 0
Oops: 0000 [#1] SMP
last sysfs file: /sys/devices/system/cpu/cpu1/cache/index2/shared_cpu_map
CPU 1
Modules linked in: ...
Pid: 1748, comm: modprobe Not tainted 2.6.37-22-default #1 /Bochs
RIP: 0010:[<ffffffff81253ae6>]  [<ffffffff81253ae6>] strstr+0x26/0xa0
RSP: 0018:ffff88003ad73f18  EFLAGS: 00010206
RAX: 0000000000000000 RBX: 00000000ffffffed RCX: 00000000ffffffff
RDX: ffffffffa003f4cc RSI: ffffffffa003f4c2 RDI: 0000000000000000
...
CR2: 0000000000000000 CR3: 000000003b7ac000 CR4: 00000000000006e0
...
Process modprobe (pid: 1748, threadinfo ffff88003ad72000, task ffff88002e6365c0)
Stack: ...
Call Trace:
 [<ffffffffa004201f>] fitpc2_wdt_init+0x1f/0x13c [sbc_fitpc2_wdt]
 [<ffffffff810002da>] do_one_initcall+0x3a/0x170
...
Code: f3 c3 0f 1f 00 80 3e 00 53 48 89 f8 74 1b 48 89 f2 0f 1f 40 00 48 83 c2 01 80 3a 00 75 f7 49 89 d0 48 89 f8 49 29 f0 75 02 5b c3 <80> 3f 00 74 0e 0f 1f 44 00 00 48 83 c0 01 80 38 00 75 f7 49 89

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2011-03-09 21:33:37 +00:00
..
acquirewdt.c
advantechwdt.c
adx_wdt.c
alim1535_wdt.c
alim7101_wdt.c
ar7_wdt.c
at32ap700x_wdt.c
at91rm9200_wdt.c
at91sam9_wdt.c
ath79_wdt.c
bcm47xx_wdt.c
bcm63xx_wdt.c
bfin_wdt.c
booke_wdt.c
coh901327_wdt.c
cpu5wdt.c
cpwd.c
davinci_wdt.c
ep93xx_wdt.c
eurotechwdt.c
f71808e_wdt.c
gef_wdt.c
geodewdt.c
hpwdt.c
i6300esb.c
ib700wdt.c
ibmasr.c
imx2_wdt.c
indydog.c
iop_wdt.c
it87_wdt.c
it8712f_wdt.c
iTCO_vendor.h
iTCO_vendor_support.c
iTCO_wdt.c
ixp4xx_wdt.c
ixp2000_wdt.c
Kconfig
ks8695_wdt.c
m54xx_wdt.c
machzwd.c
Makefile
max63xx_wdt.c
mixcomwd.c
mpc8xxx_wdt.c
mpcore_wdt.c
mtx-1_wdt.c
mv64x60_wdt.c
nuc900_wdt.c
nv_tco.c
nv_tco.h
octeon-wdt-main.c
octeon-wdt-nmi.S
omap_wdt.c
omap_wdt.h
orion_wdt.c
pc87413_wdt.c
pcwd.c
pcwd_pci.c
pcwd_usb.c
pika_wdt.c
pnx833x_wdt.c
pnx4008_wdt.c
rc32434_wdt.c
rdc321x_wdt.c
riowd.c
s3c2410_wdt.c
sa1100_wdt.c
sb_wdog.c
sbc60xxwdt.c
sbc7240_wdt.c
sbc8360.c
sbc_epx_c3.c
sbc_fitpc2_wdt.c
sc520_wdt.c
sc1200wdt.c
sch311x_wdt.c
scx200_wdt.c
shwdt.c
smsc37b787_wdt.c
softdog.c
sp805_wdt.c
sp5100_tco.c
sp5100_tco.h
stmp3xxx_wdt.c
ts72xx_wdt.c
twl4030_wdt.c
txx9wdt.c
w83627hf_wdt.c
w83697hf_wdt.c
w83697ug_wdt.c
w83877f_wdt.c
w83977f_wdt.c
wafer5823wdt.c
wd501p.h
wdrtas.c
wdt.c
wdt285.c
wdt977.c
wdt_pci.c
wm831x_wdt.c
wm8350_wdt.c