Thread (3 messages) 3 messages, 2 authors, 2017-02-18

Re: Potential NULL pointer dereference in drivers/video/fbdev/sis/init.c

From: Manuel Schölling <hidden>
Date: 2017-02-18 09:47:09

Hi Shaobo,

On Sat, 2017-02-18 at 00:26 -0700, Shaobo wrote:
I am applying a static analysis tool to the Linux device drivers and
got 
an error trace of null pointer dereference in 
drivers/video/fbdev/sis/init.c starting from function 
SiS_SetCRT1FIFO_630: pointer `queuedata` is initialized to NULL at
line 
2409 and could get dereferenced at line 2501 if ModeNo <= 0x13 and 
SiS_Pr->ChipType = SIS_730. To be more specific, if ModeNo <= 0x13
then 
the locations (line 2449 or line 2451)where `queuedata` gets updated
to 
a non null value is skipped. And if `SiS_Pr->ChipType = SIS_730`,
then 
`queuedata` is dereferenced. As you can see, the error trace is only 
plausible since it depends on certain conditions. Therefore, I was 
wondering if you could confirm it.
Thanks for your analysis! I agree with your static code analysis and
there is a potential NULL dereference.

Please note that I am not really familiar with the details of this
driver, so I am not sure what the code SHOULD look like and if this
potential dereference can really occur at runtime.

Maybe somebody else with a little bit more insight into the details of
this driver might want to comment on this?

Bye,

Manuel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help