Mailinglist Archive: opensuse (1839 mails)

< Previous Next >
Re: [opensuse] latest kernel update breaks ATI binary driver
  • From: Tejas Guruswamy <masterpatricko@xxxxxxxxx>
  • Date: Mon, 27 Sep 2010 13:03:09 +0100
  • Message-id: <4CA087FD.6020004@xxxxxxxxx>
On 27/09/10 12:35, Carlos E. R. wrote:
On Monday, 2010-09-27 at 12:14 +0100, Tejas Guruswamy wrote:
As far as I can tell, this patch reopens the security hole as well --
please advise anyone who has seen it that it should not be used under
any circumstances.
- From your previous explanation, I understand that as well. But
people needing a solution will use it, regardless.

I can not say what is the proper procedure.

- -- Cheers,
Carlos E. R.
(from 11.2 x86_64 "Emerald" at Telcontar)
Patch fglrx, not the kernel.

If you are using ati-driver shell script installer, do as Anders wrote:
install until the compilation error
save the patch [1] somewhere as CVE-2010-3081.diff
cd /usr/src/kernel-modules/fglrx
patch -p0 < ${patch_location}/CVE-2010-3081.diff
make
make install

- or -

IMO, cleaner, rebuild from the obs project X11:Drivers:Video as I've
discussed before
( uninstall any existing ati drivers )
sudo zypper in osc
mkdir ~/src; cd ~/src
osc co X11:Drivers:Video ati-fglrxG02
cd X11\:Drivers\:Video/ati-fglrxG02
mkdir ~/src/packages
osc build -k ~/src/packages -j 4 openSUSE_11.3 x86_64
ati-fglrxG02.spec #change arch/distro version as necessary
osc build -k ~/src/packages -j 4 openSUSE_11.3 x86_64
x11-video-fglrxG02.spec #change arch/distro version as necessary
cd ~/src/packages
sudo zypper in -f ati-fglrxG02-kmp-desktop-8.771_*.x86_64.rpm \
x11-video-fglrxG02-8.771-*.x86_64.rpm
(see
http://masterpatricko.blogspot.com/2010/09/building-ati-fglrx-rpms-for-opensuse.html)

Regards
Tejas

[1] CVE-2010-3081.diff
--- kcl_ioctl.c
+++ kcl_ioctl.c

@@ -193,7 +193,13 @@
*/
void* ATI_API_CALL KCL_IOCTL_AllocUserSpace32(long size)
{
- return compat_alloc_user_space(size);
+ void __user *ret = arch_compat_alloc_user_space(size);
+
+ /* prevent stack overflow */
+ if (!access_ok(VERIFY_WRITE, ret, size))
+ return NULL;
+
+ return (void *)ret;
}

#endif // __x86_64__
--
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse+help@xxxxxxxxxxxx

< Previous Next >