<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 11, 2021 at 3:29 PM Chris Johns <<a href="mailto:chrisj@rtems.org">chrisj@rtems.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 12/2/21 8:16 am, Gedare Bloom wrote:<br>
> On Thu, Feb 11, 2021 at 2:00 PM Chris Johns <<a href="mailto:chrisj@rtems.org" target="_blank">chrisj@rtems.org</a>> wrote:<br>
>><br>
>> On 12/2/21 7:27 am, Ryan Long wrote:<br>
>>> Fixes CID #1468682 where target is dereferenced before it has been<br>
>>> checked as to whether it is null or not in the<br>
>>> rtems_debugger_target_swbreak_control function.<br>
>>> ---<br>
>>>  cpukit/libdebugger/rtems-debugger-target.c | 5 +++--<br>
>>>  1 file changed, 3 insertions(+), 2 deletions(-)<br>
>>><br>
>>> diff --git a/cpukit/libdebugger/rtems-debugger-target.c b/cpukit/libdebugger/rtems-debugger-target.c<br>
>>> index e495170..3726a6c 100644<br>
>>> --- a/cpukit/libdebugger/rtems-debugger-target.c<br>
>>> +++ b/cpukit/libdebugger/rtems-debugger-target.c<br>
>>> @@ -171,17 +171,18 @@ int<br>
>>>  rtems_debugger_target_swbreak_control(bool insert, DB_UINT addr, DB_UINT kind)<br>
>>>  {<br>
>>>    rtems_debugger_target*         target = rtems_debugger->target;<br>
>>> -  rtems_debugger_target_swbreak* swbreaks = target->swbreaks.block;<br>
>>>    size_t                         swbreak_size;<br>
>>>    uint8_t*                       loc = (void*) addr;<br>
>>>    size_t                         i;<br>
>>>    int                            r;<br>
>>><br>
>>> -  if (target == NULL || swbreaks == NULL || kind != target->breakpoint_size) {<br>
>>> +  if (target == NULL || target->swbreaks.block == NULL ||<br>
>>> +      kind != target->breakpoint_size) {<br>
>>>      errno = EIO;<br>
>>>      return -1;<br>
>>>    }<br>
>>><br>
>>> +  rtems_debugger_target_swbreak* swbreaks = target->swbreaks.block;<br>
>><br>
>> The debug server does not declare local vars in the body of functions. I would<br>
>> prefer the this code base stays that way if that is OK?<br>
>><br>
> Good catch. This is a holdover from ANSI C that we should generally<br>
> adhere to in RTEMS cpukit code for historical reasons.<br>
<br>
Yes I agree. I understand and accept this is a personal thing and I stated my<br>
preference in the other post.<br></blockquote><div><br></div><div>No. I missed that you wanted the variable at the top of scope. I agree that </div><div>tighter scoping is more a C++ thing than a C thing.  I was looking for something</div><div>more complicated.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
I use this feature judicially in C++ where I think it is more important to do<br>
so. In C++ a variable can be declared in a number of ways and places and I feel<br>
being consistent aids readability. Compilers are smart enough to figure out when<br>
a variable become active and we do not need to help.<br></blockquote><div><br></div><div>It is nice when a temporary variable is only used inside an if or loop. </div><div><br></div><div>--joel </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Chris<br>
_______________________________________________<br>
devel mailing list<br>
<a href="mailto:devel@rtems.org" target="_blank">devel@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a><br>
</blockquote></div></div>