i810: fix kernel crash fix when struct fb_var_screeninfo is supplied
authorSamuel CUELLA <samuel.cuella@supinfo.com>
Tue, 10 Mar 2009 19:56:00 +0000 (12:56 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 10 Mar 2009 22:55:12 +0000 (15:55 -0700)
commit16b71fdf97599f1b1b7f38418ee9922d9f117396
tree86ceac6117f5a678aaa177bbcdf8d84d2559010c
parent9233ecc5c4b5f31921d914b3ef3baa3dc1ae4cc6
i810: fix kernel crash fix when struct fb_var_screeninfo is supplied

Prevent the kernel from being crashed by a divide-by-zero operation when
supplied an incorrectly filled 'struct fb_var_screeninfo' from userland.

Previously i810_main.c:1005 (i810_check_params) was using the global
'yres' symbol previously defined at i810_main.c:145 as a module parameter
value holder (i810_main.c:2174).  If i810fb is compiled-in or if this
param doesn't get a default value, this direct usage leads to a
divide-by-zero at i810_main.c:1005 (i810_check_params).  The patch simply
replace the 'yres' global, perhaps undefined symbol usage by a given
parameter structure lookup.

This problem occurs with directfb, mplayer -vo fbdev, SDL library.
It was also reported ( but non solved ) at:

http://mail.directfb.org/pipermail/directfb-dev/2008-March/004050.html

Signed-off-by: Samuel CUELLA <samuel.cuella@supinfo.com>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Krzysztof Helt <krzysztof.h1@poczta.fm>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/video/i810/i810_main.c