Fix use of uninitialized value in linux-arm-low in GDBServer.
Commit Message
In arm_breakpoint_at, an uninitialized unsigned long was used were only
4 bytes would be written to the variable thus polluting the value on 64bit.
This patch changes the value to an unsigned int.
gdb/gdbserver/ChangeLog:
* linux-arm-low.c (arm_breakpoint_at): Fix insn size.
---
gdb/gdbserver/linux-arm-low.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
Antoine Tremblay <antoine.tremblay@ericsson.com> writes:
> In arm_breakpoint_at, an uninitialized unsigned long was used were only
> 4 bytes would be written to the variable thus polluting the value on 64bit.
'unsigned long' is 32-bit on arm. What problem do you want to fix?
On 09/25/2015 07:10 AM, Yao Qi wrote:
> Antoine Tremblay <antoine.tremblay@ericsson.com> writes:
>
>> In arm_breakpoint_at, an uninitialized unsigned long was used were only
>> 4 bytes would be written to the variable thus polluting the value on 64bit.
>
> 'unsigned long' is 32-bit on arm. What problem do you want to fix?
>
Won't this function be used if you're debugging an arm program on aarch64 ?
On 09/25/2015 07:33 AM, Antoine Tremblay wrote:
>
>
> On 09/25/2015 07:10 AM, Yao Qi wrote:
>> Antoine Tremblay <antoine.tremblay@ericsson.com> writes:
>>
>>> In arm_breakpoint_at, an uninitialized unsigned long was used were only
>>> 4 bytes would be written to the variable thus polluting the value on
>>> 64bit.
>>
>> 'unsigned long' is 32-bit on arm. What problem do you want to fix?
>>
>
> Won't this function be used if you're debugging an arm program on aarch64 ?
>
Looking at it more , I don't think so, sorry for the noise it just
jumped to me as I was fixing a similar issue elsewhere.
On 09/25/2015 12:42 PM, Antoine Tremblay wrote:
>
>
> On 09/25/2015 07:33 AM, Antoine Tremblay wrote:
>>
>>
>> On 09/25/2015 07:10 AM, Yao Qi wrote:
>>> Antoine Tremblay <antoine.tremblay@ericsson.com> writes:
>>>
>>>> In arm_breakpoint_at, an uninitialized unsigned long was used were only
>>>> 4 bytes would be written to the variable thus polluting the value on
>>>> 64bit.
>>>
>>> 'unsigned long' is 32-bit on arm. What problem do you want to fix?
>>>
>>
>> Won't this function be used if you're debugging an arm program on aarch64 ?
>>
> Looking at it more , I don't think so, sorry for the noise it just
> jumped to me as I was fixing a similar issue elsewhere.
>
Note that gnulib gives us stdint.h everywhere nowadays, so in these
cases the best/clearest would be to use uint32_t, etc.
Thanks,
Pedro Alves
@@ -272,7 +272,7 @@ arm_breakpoint_at (CORE_ADDR where)
else
{
/* ARM mode. */
- unsigned long insn;
+ unsigned int insn;
(*the_target->read_memory) (where, (unsigned char *) &insn, 4);
if (insn == arm_breakpoint)