Re: [PATCH] uprobe: avoid out-of-bounds memory access of fetching args
From: Oleg Nesterov
Date: Mon Oct 14 2024 - 11:00:34 EST
Sorry, currently I don't have time to even try to read this patch, just
one note below...
On 10/14, Ma Qiao wrote:
>
> @@ -979,6 +980,11 @@ static struct uprobe_cpu_buffer *prepare_uprobe_buffer(struct trace_uprobe *tu,
> ucb = uprobe_buffer_get();
> ucb->dsize = tu->tp.size + dsize;
>
> + if (WARN_ON_ONCE(ucb->dsize > MAX_UCB_BUFFER_SIZE)) {
> + ucb->dsize = MAX_UCB_BUFFER_SIZE;
> + dsize = MAX_UCB_BUFFER_SIZE - tu->tp.size;
> + }
> +
Then you can probably kill the
if (WARN_ON_ONCE(ucb->dsize > PAGE_SIZE))
check in __uprobe_trace_func(), no?
Oleg.