[Spice-devel] [spice-server PATCH 3/4] dcc_gl_draw_item_new: allocate item when needed

Uri Lublin uril at redhat.com
Wed Sep 14 12:31:01 UTC 2016


Prevents a leak on early return.

Found by coverity.

Signed-off-by: Uri Lublin <uril at redhat.com>
---
 server/dcc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/server/dcc.c b/server/dcc.c
index cdd888b..2587d72 100644
--- a/server/dcc.c
+++ b/server/dcc.c
@@ -591,7 +591,7 @@ RedPipeItem *dcc_gl_draw_item_new(RedChannelClient *rcc, void *data, int num)
 {
     DisplayChannelClient *dcc = DISPLAY_CHANNEL_CLIENT(rcc);
     const SpiceMsgDisplayGlDraw *draw = data;
-    RedGlDrawItem *item = spice_new(RedGlDrawItem, 1);
+    RedGlDrawItem *item;
 
     if (!red_channel_client_test_remote_cap(rcc, SPICE_DISPLAY_CAP_GL_SCANOUT)) {
         spice_printerr("FIXME: client does not support GL scanout");
@@ -600,6 +600,7 @@ RedPipeItem *dcc_gl_draw_item_new(RedChannelClient *rcc, void *data, int num)
     }
 
     dcc->priv->gl_draw_ongoing = TRUE;
+    item = spice_new(RedGlDrawItem, 1);
     item->draw = *draw;
     red_pipe_item_init(&item->base, RED_PIPE_ITEM_TYPE_GL_DRAW);
 
-- 
2.7.4



More information about the Spice-devel mailing list