Messages in this thread | | | Date | Mon, 6 Dec 2004 20:58:03 +0530 | From | Prasanna S Panchamukhi <> | Subject | Re: [patch] kprobes: dont steal interrupts from vm86 |
| |
Hi, On Thu, Dec 02, 2004 at 10:28:32PM +0300, Stas Sergeev wrote: > Hello. > > Prasanna S Panchamukhi wrote: > >Yes, there is a small bug in kprobes. Kprobes int3 handler > >was returning wrong value. Please check out if the patch > >attached with this mail fixes your problem. > >Please let me know if you have any issues. > Yes. After several days of debugging, > I am pointing to this problem again. > Unfortunately your patch appeared not > to work. It only masks the problem. > I was surprised that you check VM_MASK > after you already used "addr" a couple > of times - this "addr" is completely > bogus and should not be used. Now this > turned out more important. The problem > is that the "addr" calculated only from > the value of EIP, is bogus not only when > VM flag is set. It is also bogus if the > program uses segmentation and the > CS_base!=0. I have many of the like > programs here and they all are broken > because kprobes still steal the int3 from > them. They do not use V86, but they use > segments instead of the flat layout, so > the address cannot be calculated by the > EIP value.
Well, a test program is always better. I would appreciate if you can sent me the test program.
> I would suggest something like the attached > patch. I know nothing about kprobes (sorry) > so I don't know what CS you need. If you > need not only __KERNEL_CS, you probably > want the (regs->xcs & 4) check to see if > the CS is not from LDT at least. Does this > make sense? > Anyway, would be nice to get this fixed. > This can cause Oopses because you deref > the completely bogus pointer later in the > code. > Writing a test-case for this problem is > not a several-minutes work, but if you > really need one, I may try to hack it out. > > Thanks. >
Thanks Prasanna
--
Prasanna S Panchamukhi Linux Technology Center India Software Labs, IBM Bangalore Ph: 91-80-25044636 <prasanna@in.ibm.com> - 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/
| |