Rafael J. Wysocki
497fb54f57
ACPI / PCI: Fix NULL pointer dereference in acpi_get_pci_dev() (rev. 2)
...
acpi_get_pci_dev() may be called for a non-PCI device, in which case
it should return NULL. However, it assumes that every handle it
finds in the ACPI CA name space, between given device handle and the
PCI root bridge handle, corresponds to a PCI-to-PCI bridge with an
existing secondary bus. For this reason, when it finds a struct
pci_dev object corresponding to one of them, it doesn't check if
its 'subordinate' field is a valid pointer. This obviously leads to
a NULL pointer dereference if acpi_get_pci_dev() is called for a
non-PCI device with a PCI parent which is not a bridge.
To fix this issue make acpi_get_pci_dev() check if pdev->subordinate
is not NULL for every device it finds on the path between the root
bridge and the device it's supposed to get to and return NULL if the
"target" device cannot be found.
http://bugzilla.kernel.org/show_bug.cgi?id=14129
(worked in 2.6.30, regression in 2.6.31)
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Reported-by: Danny Feng <dfeng@redhat.com>
Reviewed-by: Alex Chiang <achiang@hp.com>
Tested-by: chepioq <chepioq@gmail.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2009-10-13 01:14:53 -04:00
..
accessibility
acpi
ACPI / PCI: Fix NULL pointer dereference in acpi_get_pci_dev() (rev. 2)
2009-10-13 01:14:53 -04:00
amba
ata
atm
net: Make setsockopt() optlen be unsigned.
2009-09-30 16:12:20 -07:00
auxdisplay
base
block
Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block
2009-10-04 12:39:14 -07:00
bluetooth
cdrom
sysctl: remove "struct file *" argument of ->proc_handler
2009-09-24 07:21:04 -07:00
char
headers: remove sched.h from poll.h
2009-10-04 15:05:10 -07:00
clocksource
connector
connector: Removed the destruct_data callback since it is always kfree_skb()
2009-10-02 10:54:05 -07:00
cpufreq
cpuidle
crypto
dca
dio
dma
edac
edac: core: remove completion-wait for complete with rcu_barrier
2009-09-24 07:21:05 -07:00
eisa
firewire
headers: remove sched.h from poll.h
2009-10-04 15:05:10 -07:00
firmware
gpio
const: constify remaining file_operations
2009-10-01 16:11:11 -07:00
gpu
Merge branch 'drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
2009-09-30 08:03:00 -07:00
hid
headers: remove sched.h from poll.h
2009-10-04 15:05:10 -07:00
hwmon
ltc4215/ltc4245: Discard obsolete detect methods
2009-10-04 22:53:42 +02:00
i2c
i2c: Hide probe errors caused by ACPI resource conflicts
2009-10-04 22:53:45 +02:00
ide
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6
2009-09-23 09:32:11 -07:00
idle
ieee1394
const: mark struct vm_struct_operations
2009-09-27 11:39:25 -07:00
ieee802154
infiniband
headers: remove sched.h from poll.h
2009-10-04 15:05:10 -07:00
input
headers: remove sched.h from poll.h
2009-10-04 15:05:10 -07:00
isdn
headers: remove sched.h from poll.h
2009-10-04 15:05:10 -07:00
leds
leds: leds-pca9532 - Drop unused module parameters
2009-10-04 22:53:43 +02:00
lguest
const: constify remaining file_operations
2009-10-01 16:11:11 -07:00
macintosh
macintosh: Don't assume i2c device probing always succeeds
2009-10-04 22:53:46 +02:00
mca
md
Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block
2009-10-04 12:39:14 -07:00
media
headers: remove sched.h from poll.h
2009-10-04 15:05:10 -07:00
memstick
memstick: move dev_dbg
2009-09-24 07:21:05 -07:00
message
mfd
headers: remove sched.h from poll.h
2009-10-04 15:05:10 -07:00
misc
max6875: Discard obsolete detect method
2009-10-04 22:53:41 +02:00
mmc
Merge master.kernel.org:/home/rmk/linux-2.6-arm
2009-10-02 16:20:43 -07:00
mtd
block: use normal I/O path for discard requests
2009-10-01 21:19:30 +02:00
net
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
2009-10-02 13:37:18 -07:00
nubus
of
of: remove "stm,m25p40" alias
2009-09-23 07:39:43 -07:00
oprofile
cpumask: use zalloc_cpumask_var() where possible
2009-09-24 09:34:24 +09:30
parisc
parport
sysctl: remove "struct file *" argument of ->proc_handler
2009-09-24 07:21:04 -07:00
pci
ACPICA: fixup after acpi_get_object_info() change
2009-09-25 14:24:22 -04:00
pcmcia
Merge master.kernel.org:/home/rmk/linux-2.6-arm
2009-10-02 16:20:43 -07:00
platform
Merge branches 'sony-laptop', 'bugzilla-14247' and 'bugzilla-14271' into release
2009-10-02 11:27:57 -04:00
pnp
ACPI: remove acpi_device.flags.hardware_id
2009-09-25 15:09:48 -04:00
power
pps
ps3
rapidio
regulator
rtc
Merge branch 'origin' into for-linus
2009-09-24 21:22:33 +01:00
s390
const: constify remaining file_operations
2009-10-01 16:11:11 -07:00
sbus
scsi
const: constify remaining file_operations
2009-10-01 16:11:11 -07:00
serial
Merge master.kernel.org:/home/rmk/linux-2.6-arm
2009-10-02 16:20:43 -07:00
sfi
SFI: remove __init from sfi_verify_table
2009-10-03 01:16:12 -04:00
sh
sn
spi
spi-imx: strip down chipselect function to only drive the chipselect
2009-10-01 16:11:17 -07:00
ssb
ssb/sdio: fix printk format warnings
2009-09-23 11:35:41 -04:00
staging
Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging
2009-10-04 14:59:14 -07:00
tc
telephony
thermal
uio
const: mark struct vm_struct_operations
2009-09-27 11:39:25 -07:00
usb
headers: remove sched.h from poll.h
2009-10-04 15:05:10 -07:00
uwb
const: constify remaining file_operations
2009-10-01 16:11:11 -07:00
video
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
2009-10-02 13:37:18 -07:00
virtio
vlynq
drivers/vlynq/vlynq.c: fix resource size off by 1 error
2009-09-24 07:21:05 -07:00
w1
ds2482: Discard obsolete detect method
2009-10-04 22:53:41 +02:00
watchdog
[WATCHDOG] Add support for the Avionic Design Xanthos watchdog timer.
2009-09-25 08:38:16 +00:00
xen
headers: remove sched.h from poll.h
2009-10-04 15:05:10 -07:00
zorro
Kconfig
Makefile
Merge git://git.infradead.org/mtd-2.6
2009-09-23 10:07:49 -07:00