Messages in this thread | | | Date | Tue, 29 Apr 2008 16:14:25 +0800 (CST) | Subject | Re: [PATCH 9/19] UML - Tidy ptrace interface | From | WANG Cong <> |
| |
On Mon, 28 Apr 2008, Jeff Dike wrote:
> On Sat, Apr 26, 2008 at 05:35:38PM +0800, WANG Cong wrote: >> From: Jeff Dike <jdike@addtoit.com> >> Date: Fri, 25 Apr 2008 13:56:10 -0400 >> > Tidy the ptrace interface code. Removed a bunch of unused macros. >> > Started converting register sets from arrays of longs to structures. >> >> Could you please explain a bit why do this? I think long arrary is OK. > > It's wrong on x86_64. There, FRAME_SIZE is 168 - > #define FRAME_SIZE > and SS is the last register defined - > #define SS 160 > but there are a number of registers beyond that in the user_regs_struct: > unsigned long ss; > unsigned long fs_base; > unsigned long gs_base; > unsigned long ds; > unsigned long es; > unsigned long fs; > unsigned long gs; > > The effect of GETREGS into a long[FRAME_SIZE] will be stack corruption. >
Thanks for teaching this. ;-)
-- Hi, I'm a .signature virus, please copy/paste me to help me spread all over the world.
| |