gdb/linux-record: Fix msghdr parsing on 64-bit targets

The code failed to account for padding between the int and subsequent
pointer present on 64-bit architectures.

gdb/ChangeLog:

	* linux-record.c (record_linux_msghdr): Fix msg_namelen handling.
This commit is contained in:
Marcin Kościelnicki 2015-10-30 15:51:58 +00:00 committed by Pedro Alves
parent 72aded8673
commit 933c5a623f
2 changed files with 7 additions and 1 deletions

View file

@ -1,3 +1,7 @@
2015-10-30 Marcin Kościelnicki <koriakin@0x04.net>
* linux-record.c (record_linux_msghdr): Fix msg_namelen handling.
2015-10-30 Marcin Kościelnicki <koriakin@0x04.net>
* aarch64-linux-tdep.c (aarch64_linux_init_abi): Remove

View file

@ -162,7 +162,9 @@ record_linux_msghdr (struct regcache *regcache,
tdep->size_int,
byte_order)))
return -1;
a += tdep->size_int;
/* We have read an int, but skip size_pointer bytes to account for alignment
of the next field on 64-bit targets. */
a += tdep->size_pointer;
/* msg_iov msg_iovlen */
addr = extract_unsigned_integer (a, tdep->size_pointer, byte_order);