Messages in this thread | | | Date | Sun, 19 Oct 2003 12:01:21 -0700 | From | William Lee Irwin III <> | Subject | Re: [RFC] prevent "dd if=/dev/mem" crash |
| |
On Sun, Oct 19, 2003 at 05:25:37AM -0600, Eric W. Biederman wrote: > We do have all of the information we need in struct page to see if a > page address is valid, so checking that is reasonable. I suspect it > will require some interesting variant of pfn_to_page to handle of the > weird sparse memory locations properly.
It would be best to check the pfn before attempting to convert it to a struct page. The struct page * returned by arch code will be garbage in most instances, as none of the routines actually check validity internally. pfn_valid() is even bogus on most of them, so you'll have to walk pgdats by hand for this. The pfn_valid() checks work most of the time on PC's, but the first time someone runs X on a box with discontig and a bogus pfn_valid() they'll get fireworks (and in fact, it's already happened, but wasn't posted to lkml).
-- wli - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |