|
From: Blaisorblade <bla...@ya...> - 2005-09-29 19:22:12
|
=46rom what I can see, while in SKAS mode access_ok_skas() was changed to a= llow=20 reading from vsyscall page, while TT mode wasn't. I'm not sure it that happened: *) because TT mode already allowed that (access_ok_tt() currently accepts a= ny=20 read) or *) because TT mode is different in this regard. But the more I think the more I conclude it's the first reason. Anyway, I wanted to make sure because I'm fixing access_ok. Attached is pat= ch=20 1, which joins common code and adds missing checking. Later I'll maybe drop what is unneeded, for instance, range wrapping checki= ng=20 seems not to be done on i386, and we just need to fail in copy_from_user() = in=20 that case. Switching copy_*_user() to use an unsigned type for the size, maybe a long = (I=20 don't expect anything to actually need 64-bit, even on x64, though), would = be=20 nice too. =2D-=20 Inform me of my mistakes, so I can keep imitating Homer Simpson's "Doh!". Paolo Giarrusso, aka Blaisorblade (Skype ID "PaoloGiarrusso", ICQ 215621894) http://www.user-mode-linux.org/~blaisorblade |