[PATCH 4/4] rtems-debugger-target.c: Fix Coverity Dereference before null check
Chris Johns
chrisj at rtems.org
Thu Feb 11 21:00:19 UTC 2021
On 12/2/21 7:27 am, Ryan Long wrote:
> Fixes CID #1468682 where target is dereferenced before it has been
> checked as to whether it is null or not in the
> rtems_debugger_target_swbreak_control function.
> ---
> cpukit/libdebugger/rtems-debugger-target.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/cpukit/libdebugger/rtems-debugger-target.c b/cpukit/libdebugger/rtems-debugger-target.c
> index e495170..3726a6c 100644
> --- a/cpukit/libdebugger/rtems-debugger-target.c
> +++ b/cpukit/libdebugger/rtems-debugger-target.c
> @@ -171,17 +171,18 @@ int
> rtems_debugger_target_swbreak_control(bool insert, DB_UINT addr, DB_UINT kind)
> {
> rtems_debugger_target* target = rtems_debugger->target;
> - rtems_debugger_target_swbreak* swbreaks = target->swbreaks.block;
> size_t swbreak_size;
> uint8_t* loc = (void*) addr;
> size_t i;
> int r;
>
> - if (target == NULL || swbreaks == NULL || kind != target->breakpoint_size) {
> + if (target == NULL || target->swbreaks.block == NULL ||
> + kind != target->breakpoint_size) {
> errno = EIO;
> return -1;
> }
>
> + rtems_debugger_target_swbreak* swbreaks = target->swbreaks.block;
The debug server does not declare local vars in the body of functions. I would
prefer the this code base stays that way if that is OK?
Chris
> swbreak_size =
> sizeof(rtems_debugger_target_swbreak) + target->breakpoint_size;
>
>
More information about the devel
mailing list