[glib: 4/11] tests: Fix use-after-free in the appinfo tests



commit 68526565f41383f2c588951bf7e4de7a7ea4c162
Author: Philip Withnall <withnall endlessm com>
Date:   Wed Jun 27 09:54:06 2018 +0100

    tests: Fix use-after-free in the appinfo tests
    
    When changing the locale using setlocale(), duplicate the old locale
    value before updating it, so that we can safely restore the old locale
    after running the test.
    
    Signed-off-by: Philip Withnall <withnall endlessm com>

 gio/tests/appinfo.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
---
diff --git a/gio/tests/appinfo.c b/gio/tests/appinfo.c
index 2e69da051..d9d61b605 100644
--- a/gio/tests/appinfo.c
+++ b/gio/tests/appinfo.c
@@ -128,10 +128,10 @@ static void
 test_locale (const char *locale)
 {
   GAppInfo *appinfo;
-  const gchar *orig;
+  gchar *orig = NULL;
   const gchar *path;
 
-  orig = setlocale (LC_ALL, NULL);
+  orig = g_strdup (setlocale (LC_ALL, NULL));
   g_setenv ("LANGUAGE", locale, TRUE);
   setlocale (LC_ALL, "");
 
@@ -161,6 +161,7 @@ test_locale (const char *locale)
 
   g_setenv ("LANGUAGE", orig, TRUE);
   setlocale (LC_ALL, "");
+  g_free (orig);
 }
 
 static void


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