]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
Input: rmi4 - fix memory leak in rmi_set_attn_data()
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 5 May 2026 04:59:35 +0000 (21:59 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 12 Jun 2026 05:39:27 +0000 (22:39 -0700)
kfifo_put() returns 0 if the FIFO is full. In this case, we must
free the memory allocated for the attention data to avoid a leak.

Fixes: b908d3cd812a ("Input: synaptics-rmi4 - allow to add attention data")
Cc: stable@vger.kernel.org
Assisted-by: Gemini:gemini-3.1-pro
Link: https://patch.msgid.link/20260505045952.1570713-5-dmitry.torokhov@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/rmi4/rmi_driver.c

index 0a21f6fa3195e422549c34bdf02f7d97787ec5b2..3dc7ab61c2693a4f4220f950b089fe9d3497f087 100644 (file)
@@ -183,7 +183,11 @@ void rmi_set_attn_data(struct rmi_device *rmi_dev, unsigned long irq_status,
        attn_data.size = size;
        attn_data.data = fifo_data;
 
-       kfifo_put(&drvdata->attn_fifo, attn_data);
+       if (!kfifo_put(&drvdata->attn_fifo, attn_data)) {
+               dev_warn_ratelimited(&rmi_dev->dev,
+                                    "Failed to enqueue attention data, FIFO full\n");
+               kfree(fifo_data);
+       }
 }
 EXPORT_SYMBOL_GPL(rmi_set_attn_data);