[gtk+] x11: Avoid a possible memory leak in an error case



commit c37e3b631616313fd93bcbb3da54d68caf95198f
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Jan 4 15:13:51 2014 -0500

    x11: Avoid a possible memory leak in an error case
    
    If _NET_WORKAREA is set to nonsensical values, we should still
    free the memory before returning.

 gdk/x11/gdkscreen-x11.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c
index 6b09834..9f09ce1 100644
--- a/gdk/x11/gdkscreen-x11.c
+++ b/gdk/x11/gdkscreen-x11.c
@@ -314,7 +314,7 @@ get_work_area (GdkScreen    *screen,
   gulong          num;
   gulong          leftovers;
   gulong          max_len = 4 * 32;
-  guchar         *ret_workarea;
+  guchar         *ret_workarea = NULL;
   long           *workareas;
   int             result;
   int             disp_screen;
@@ -356,7 +356,7 @@ get_work_area (GdkScreen    *screen,
       format == 0 ||
       leftovers ||
       num % 4 != 0)
-    return;
+    goto out;
 
   desktop = get_current_desktop (screen);
 
@@ -371,7 +371,9 @@ get_work_area (GdkScreen    *screen,
   area->width /= x11_screen->window_scale;
   area->height /= x11_screen->window_scale;
 
-  XFree (ret_workarea);
+out:
+  if (ret_workarea)
+    XFree (ret_workarea);
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]