This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: [PATCH V5 2/2] Add mpx-bnd-init-on-return set/show command for inferior calls.


Yao and All,

Not sure if I have answered Yao questions. Could not find any additional review about this patch.

Is it ok to push the patch?

Without that the usage of the command "return" in the MPX context will cause boundary violations in the inferior.

Thanks and regards,
-Fred 

 

-----Original Message-----
From: gdb-patches-owner@sourceware.org [mailto:gdb-patches-owner@sourceware.org] On Behalf Of Walfred Tedeschi
Sent: Monday, May 2, 2016 1:37 PM
To: Yao Qi <qiyaoltc@gmail.com>
Cc: Pedro Alves <palves@redhat.com>; gdb-patches <gdb-patches@sourceware.org>; Joel Brobecker <brobecker@adacore.com>
Subject: Re: [PATCH V5 2/2] Add mpx-bnd-init-on-return set/show command for inferior calls.

Am 4/26/2016 um 5:38 PM schrieb Walfred Tedeschi:
> Am 4/26/2016 um 5:19 PM schrieb Yao Qi:
>> Walfred Tedeschi <walfred.tedeschi@intel.com> writes:
>>
>>> When using the return command, execution of a function is aborted 
>>> and present values are returned from that point.  That can cause 
>>> bound violations in the MPX context.  To avoid such side-effects, a 
>>> new setting ("mpx-bnd-init-on-return") was added to control the 
>>> initialization of bound register when using the return command.
>>>
>>
>> We need to investigate why does "return" cause bound violations.  If 
>> the violations are caused by the invalid or garbage return value, 
>> that is expected, and it is a correct behavior to me.  If the return 
>> value is out of the bounds of registers settings, the violation is 
>> caused.  Can we tweak GDB to adjust the register settings to allow 
>> these memory accesses in the "return"?
>>
>
> Yao,
>
> Thanks again for the prompt review! :)
>
>
> The "return" causes a premature exit from the function. BND is only 
> returning the bounds of the pointer which is returned in the usual way.
>   The novelty here is the BND registers. In case we are returning a 
> pointer or address BND0 will carry the bounds of the pointer being 
> returned. Once it is not set yet than garbage will be returned instead.
>
> In this way the value is wrong and a bound violations is likely to happen.
>
> Regards,
> -Fred
>


Yao,

Any comment on those observations?

Thanks and regards,
-Fred

Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter Chairperson of the Supervisory Board: Nicole Lau Registered Office: Munich Commercial Register: Amtsgericht Muenchen HRB 186928
Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]