Messages in this thread | ![/](/images/icornerl.gif) | | Date | Thu, 23 Oct 2003 18:33:16 +1000 | From | Martin Pool <> | Subject | Re: [RFC] prevent "dd if=/dev/mem" crash |
| |
On 19 Oct 2003, Pavel Machek <pavel@ucw.cz> wrote: > Hi! > > > > Old behavior: > > > > > > # dd if=/dev/mem of=/dev/null > > > <unrecoverable machine check> > > > > I recently fixed this for ia32 by changing copy_to_user() to not oops if > > the source address generated a fault. Similarly copy_from_user() returns > > an error if the destination generates a fault. > > Are you sure this is not hiding real errors? If you pass wrong > kernel ptr to copy_*_user, it should oops, not mask error with > -EFAULT. > Maybe another copy_user_unsafe should be created?
I think the problem is that reading memory that is mapped but doesn't physically exist causes a Machine Check Assertion (like an NMI) rather than a regular fault.
-- Martin - 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/
| ![\](/images/icornerr.gif) |