Re: [PATCH] mm/slab: make __free(kfree) accept error pointers

From: David Rientjes
Date: Sun Apr 28 2024 - 16:20:27 EST


On Sun, 28 Apr 2024, Dan Carpenter wrote:

> Currently, if an automatically freed allocation is an error pointer that
> will lead to a crash. An example of this is in wm831x_gpio_dbg_show().
>
> 171 char *label __free(kfree) = gpiochip_dup_line_label(chip, i);
> 172 if (IS_ERR(label)) {
> 173 dev_err(wm831x->dev, "Failed to duplicate label\n");
> 174 continue;
> 175 }
>
> The auto clean up function should check for error pointers as well,
> otherwise we're going to keep hitting issues like this.
>
> Fixes: 54da6a092431 ("locking: Introduce __cleanup() based infrastructure")
> Cc: <stable@xxxxxxxxxxxxxxx>
> Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>

Acked-by: David Rientjes <rientjes@xxxxxxxxxx>