Messages in this thread | | | Date | Mon, 28 Apr 2008 11:42:40 -0400 | From | Jeff Dike <> | Subject | Re: [PATCH 9/19] UML - Tidy ptrace interface |
| |
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.
Jeff
-- Work email - jdike at linux dot intel dot com
| |