[PATCH 4/4] rtems-debugger-target.c: Fix Coverity Dereference before null check

Gedare Bloom gedare at rtems.org
Thu Feb 11 21:16:10 UTC 2021


On Thu, Feb 11, 2021 at 1:28 PM Ryan Long <thisisryanlong at gmail.com> 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;
+  rtems_debugger_target_swbreak* swbreaks;

declare var here

>    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;
>    }
>
+  swbreaks = target->swbreaks.block;

use var here

>    swbreak_size =
>      sizeof(rtems_debugger_target_swbreak) + target->breakpoint_size;
>
> --
> 1.8.3.1
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel


More information about the devel mailing list