* linux-low.c (usr_store_inferior_registers): Transfer buf in

PTRACE_XFER_TYPE-sized chunks, not int-sized chunks.  Otherwise,
if 'int' is smaller than PTRACE_XFER_TYPE, you end up throwing
away part of the register's value.
This commit is contained in:
Jim Blandy 2003-05-29 22:56:50 +00:00
parent 93ec1121ed
commit 2ff29de43c
2 changed files with 9 additions and 2 deletions

View file

@ -1,3 +1,10 @@
2003-05-29 Jim Blandy <jimb@redhat.com>
* linux-low.c (usr_store_inferior_registers): Transfer buf in
PTRACE_XFER_TYPE-sized chunks, not int-sized chunks. Otherwise,
if 'int' is smaller than PTRACE_XFER_TYPE, you end up throwing
away part of the register's value.
2003-04-24 Andrew Cagney <cagney@redhat.com>
* low-nbsd.c (fetch_inferior_registers):

View file

@ -976,7 +976,7 @@ usr_store_inferior_registers (int regno)
{
errno = 0;
ptrace (PTRACE_POKEUSER, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
*(int *) (buf + i));
*(PTRACE_XFER_TYPE *) (buf + i));
if (errno != 0)
{
if ((*the_low_target.cannot_store_register) (regno) == 0)
@ -989,7 +989,7 @@ usr_store_inferior_registers (int regno)
return;
}
}
regaddr += sizeof (int);
regaddr += sizeof (PTRACE_XFER_TYPE);
}
}
else