[PATCH] winedbg: Don't dereference possibly NULL thread pointer.

Zebediah Figura (she/her) zfigura at codeweavers.com
Tue Mar 9 16:19:52 CST 2021


On 3/9/21 3:54 PM, Rémi Bernon wrote:
> Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
> ---
>   programs/winedbg/gdbproxy.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/programs/winedbg/gdbproxy.c b/programs/winedbg/gdbproxy.c
> index 41aee55656b..bf96482042a 100644
> --- a/programs/winedbg/gdbproxy.c
> +++ b/programs/winedbg/gdbproxy.c
> @@ -115,11 +115,11 @@ struct gdb_context
>   static void gdbctx_delete_xpoint(struct gdb_context *gdbctx, struct dbg_thread *thread,
>                                    dbg_ctx_t *ctx, struct gdb_xpoint *x)
>   {
> -    struct dbg_process *process = thread->process;
> +    struct dbg_process *process = gdbctx->process;
>       struct backend_cpu *cpu = process->be_cpu;
>   
>       if (!cpu->remove_Xpoint(process->handle, process->process_io, ctx, x->type, x->addr, x->value, x->size))
> -        ERR("%04x:%04x: Couldn't remove breakpoint at:%p/%x type:%d\n", process->pid, thread->tid, x->addr, x->size, x->type);
> +        ERR("%04x:%04x: Couldn't remove breakpoint at:%p/%x type:%d\n", process->pid, thread ? thread->tid : ~0, x->addr, x->size, x->type);
>   
>       list_remove(&x->entry);
>       HeapFree(GetProcessHeap(), 0, x);
> 

Is there any point in passing the thread to this function?



More information about the wine-devel mailing list