diff mbox series

[V2,next] drm/vmwgfx: Fix memory allocation check and a leak of object fifo

Message ID 20210514144930.89813-1-colin.king@canonical.com (mailing list archive)
State New, archived
Headers show
Series [V2,next] drm/vmwgfx: Fix memory allocation check and a leak of object fifo | expand

Commit Message

Colin King May 14, 2021, 2:49 p.m. UTC
From: Colin Ian King <colin.king@canonical.com>

The allocation of fifo is lacking an allocation failure check, so
fix this by adding one.

In the case where fifo->static_buffer fails to be allocated the
error return path neglects to kfree the fifo object. Fix this by
adding in the missing kfree.

Kudos to Dan Carpenter for spotting the missing kzalloc failure
check.

Addresses-Coverity: ("Resource leak")
Fixes: 2cd80dbd3551 ("drm/vmwgfx: Add basic support for SVGA3")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---

V2: Add missing allocation failure check
    Update $SUBJECT to reflect this extra change

---
 drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Zack Rusin May 14, 2021, 6:32 p.m. UTC | #1
On 5/14/21 10:49 AM, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
> 
> The allocation of fifo is lacking an allocation failure check, so
> fix this by adding one.
> 
> In the case where fifo->static_buffer fails to be allocated the
> error return path neglects to kfree the fifo object. Fix this by
> adding in the missing kfree.
> 
> Kudos to Dan Carpenter for spotting the missing kzalloc failure
> check.
> 
> Addresses-Coverity: ("Resource leak")
> Fixes: 2cd80dbd3551 ("drm/vmwgfx: Add basic support for SVGA3")
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
> 
> V2: Add missing allocation failure check
>      Update $SUBJECT to reflect this extra change

Looks good. Thanks. I'll push it through drm-misc-next.

z
diff mbox series

Patch

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c b/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
index 027d7d504e78..d9acd2f3f673 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c
@@ -105,10 +105,14 @@  struct vmw_fifo_state *vmw_fifo_create(struct vmw_private *dev_priv)
 		return NULL;
 
 	fifo = kzalloc(sizeof(*fifo), GFP_KERNEL);
+	if (!fifo)
+		return ERR_PTR(-ENOMEM);
 	fifo->static_buffer_size = VMWGFX_FIFO_STATIC_SIZE;
 	fifo->static_buffer = vmalloc(fifo->static_buffer_size);
-	if (unlikely(fifo->static_buffer == NULL))
+	if (unlikely(fifo->static_buffer == NULL)) {
+		kfree(fifo);
 		return ERR_PTR(-ENOMEM);
+	}
 
 	fifo->dynamic_buffer = NULL;
 	fifo->reserved_size = 0;