* drivers/acpi/video.c: null pointer dereference
@ 2005-03-24 20:37 Adrian Bunk
2005-03-31 3:26 ` Len Brown
0 siblings, 1 reply; 2+ messages in thread
From: Adrian Bunk @ 2005-03-24 20:37 UTC (permalink / raw)
To: len.brown-ral2JQCrhuEAvxtiuMwx3w
Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
linux-kernel-u79uwXL29TY76Z2rM5mHXA
The Coverity checker found the following null pointer dereference in
drivers/acpi/video.c:
<-- snip -->
...
static int
acpi_video_switch_output(
...
{
...
struct acpi_video_device *dev=NULL;
...
list_for_each_safe(node, next, &video->video_device_list) {
struct acpi_video_device * dev = container_of(node, struct acpi_video_device, entry);
...
}
...
switch (event) {
case ACPI_VIDEO_NOTIFY_CYCLE:
case ACPI_VIDEO_NOTIFY_NEXT_OUTPUT:
acpi_video_device_set_state(dev, 0);
acpi_video_device_set_state(dev_next, 0x80000001);
break;
case ACPI_VIDEO_NOTIFY_PREV_OUTPUT:
acpi_video_device_set_state(dev, 0);
acpi_video_device_set_state(dev_prev, 0x80000001);
...
<-- snip -->
Two different variables of the same name within 40 lines of code are a
good indication that something's wrong...
The outer "dev" variable is never assigned any value different from
NULL.
acpi_video_device_set_state dereferences this variable.
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: drivers/acpi/video.c: null pointer dereference 2005-03-24 20:37 drivers/acpi/video.c: null pointer dereference Adrian Bunk @ 2005-03-31 3:26 ` Len Brown 0 siblings, 0 replies; 2+ messages in thread From: Len Brown @ 2005-03-31 3:26 UTC (permalink / raw) To: Adrian Bunk; +Cc: ACPI Developers, linux-kernel, Luming Yu [-- Attachment #1: Type: text/plain, Size: 1260 bytes --] On Thu, 2005-03-24 at 15:37, Adrian Bunk wrote: > The Coverity checker found the following null pointer dereference in > drivers/acpi/video.c: > > <-- snip --> > > ... > static int > acpi_video_switch_output( > ... > { > ... > struct acpi_video_device *dev=NULL; > ... > list_for_each_safe(node, next, &video->video_device_list) { > struct acpi_video_device * dev = container_of(node, > struct acpi_video_device, entry); > ... > } > ... > switch (event) { > case ACPI_VIDEO_NOTIFY_CYCLE: > case ACPI_VIDEO_NOTIFY_NEXT_OUTPUT: > acpi_video_device_set_state(dev, 0); > acpi_video_device_set_state(dev_next, 0x80000001); > break; > case ACPI_VIDEO_NOTIFY_PREV_OUTPUT: > acpi_video_device_set_state(dev, 0); > acpi_video_device_set_state(dev_prev, 0x80000001); > ... > > <-- snip --> > > > Two different variables of the same name within 40 lines of code are a > good indication that something's wrong... > > > The outer "dev" variable is never assigned any value different from > NULL. > > acpi_video_device_set_state dereferences this variable. > > > cu > Adrian Looks like we should do this: [-- Attachment #2: video.patch --] [-- Type: text/plain, Size: 599 bytes --] ===== drivers/acpi/video.c 1.8 vs edited ===== --- 1.8/drivers/acpi/video.c 2005-01-06 02:06:20 -05:00 +++ edited/drivers/acpi/video.c 2005-03-24 15:44:33 -05:00 @@ -1585,7 +1585,7 @@ ACPI_FUNCTION_TRACE("acpi_video_switch_output"); list_for_each_safe(node, next, &video->video_device_list) { - struct acpi_video_device * dev = container_of(node, struct acpi_video_device, entry); + dev = container_of(node, struct acpi_video_device, entry); status = acpi_video_device_get_state(dev, &state); if (state & 0x2){ dev_next = container_of(node->next, struct acpi_video_device, entry); ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2005-03-31 3:26 UTC | newest] Thread overview: 2+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2005-03-24 20:37 drivers/acpi/video.c: null pointer dereference Adrian Bunk 2005-03-31 3:26 ` Len Brown
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox