[pango/matthiasc/for-master: 1/2] tests: Avoid a possible invalid access
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango/matthiasc/for-master: 1/2] tests: Avoid a possible invalid access
- Date: Sat, 10 Jul 2021 22:32:43 +0000 (UTC)
commit 2872d0eaceac1e268bc27774083aec777ec63b00
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Jul 10 17:14:39 2021 -0400
tests: Avoid a possible invalid access
The return value of setlocale is only good until
the next call.
tests/meson.build | 1 +
tests/test-layout.c | 8 +++++---
2 files changed, 6 insertions(+), 3 deletions(-)
---
diff --git a/tests/meson.build b/tests/meson.build
index baf5ad6b..841a78eb 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -16,6 +16,7 @@ test_env = environment()
test_env.set('srcdir', meson.current_source_dir())
test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
+test_env.set('LC_ALL', 'en_US.UTF-8')
tests = [
[ 'test-bidi' ],
diff --git a/tests/test-layout.c b/tests/test-layout.c
index ca9e5da5..67f0be85 100644
--- a/tests/test-layout.c
+++ b/tests/test-layout.c
@@ -703,13 +703,14 @@ test_layout (gconstpointer d)
GString *dump;
gchar *diff;
- const char *old_locale = setlocale (LC_ALL, NULL);
+ char *old_locale = g_strdup (setlocale (LC_ALL, NULL));
setlocale (LC_ALL, "en_US.utf8");
if (strstr (setlocale (LC_ALL, NULL), "en_US") == NULL)
{
char *msg = g_strdup_printf ("Locale en_US.UTF-8 not available, skipping layout %s", filename);
g_test_skip (msg);
g_free (msg);
+ g_free (old_locale);
return;
}
@@ -726,6 +727,7 @@ test_layout (gconstpointer d)
g_assert_no_error (error);
setlocale (LC_ALL, old_locale);
+ g_free (old_locale);
if (diff && diff[0])
{
@@ -755,6 +757,8 @@ main (int argc, char *argv[])
const gchar *name;
gchar *path;
+ setlocale (LC_ALL, "");
+
if (g_getenv ("PANGO_TEST_SHOW_FONT"))
opt_show_font = TRUE;
@@ -763,8 +767,6 @@ main (int argc, char *argv[])
{
GString *string;
- setlocale (LC_ALL, "en_US.utf8");
-
string = g_string_sized_new (0);
test_file (argv[1], string);
g_print ("%s", string->str);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]