On Wed, 28 Feb 2024 at 12:00, Alex Bennée <alex.ben...@linaro.org> wrote:
>
> With the new plugin register API we can now track changes to register
> values. Currently the implementation is fairly dumb which will slow
> down if a large number of register values are being tracked. This
> could be improved by only instrumenting instructions which mention
> registers we are interested in tracking.
>

Hi; Coverity complains about a possible NULL dereference
in this code (CID 1534929):

> @@ -153,8 +224,39 @@ static void vcpu_tb_trans(qemu_plugin_id_t id, struct 
> qemu_plugin_tb *tb)
>              }
>          }
>
> +        /*
> +         * Check the disassembly to see if a register we care about
> +         * will be affected by this instruction. This relies on the
> +         * dissembler doing something sensible for the registers we
> +         * care about.
> +         */
> +        if (disas_assist && rmatches) {
> +            check_regs_next = false;
> +            gchar *args = g_strstr_len(insn_disas, -1, " ");

g_strstr_len() can return NULL if it doesn't find the
string being searched for...

> +            for (int n = 0; n < all_reg_names->len; n++) {
> +                gchar *reg = g_ptr_array_index(all_reg_names, n);
> +                if (g_strrstr(args, reg)) {

...but it's not valid to pass NULL as the argument to
g_strrstr().

> +                    check_regs_next = true;
> +                    skip = false;
> +                }
> +            }
> +        }

thanks
-- PMM

Reply via email to