Yeah, so inst_fetch or its callers are buggy.  The segment registers are
never validated.  The fault recovery stuff is not there for GP faults,
though I don't think it would be real hard to add.  Since the callers are
in fault-handling cases already, it's probably easiest just to validate the
segment registers directly on the way in.  A quick hack would be just to
check that regs->cs is USER_CS, which in practice it always should be.
That breaks vm86 and things using their own LDT code segments, but we don't
actually have any in the Hurd so you could just do that at least temporarily.

That panic is just a secondary problem, however.  Once you catch that, then
you will have to figure out what the caller is and how it got the bogus
register state.


_______________________________________________
Bug-hurd mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/bug-hurd

Reply via email to