summaryrefslogtreecommitdiffstats
path: root/meta/recipes-gnome
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2019-05-10 15:26:53 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-05-16 09:16:51 +0100
commitd3abad15046e4e5d8aeefa529e6e101ed4e95137 (patch)
tree761291fdc3400762422e7ba03b0d3904e5734f1f /meta/recipes-gnome
parentd3adbcf5045c807bc9e74328a0a0b8b1068a1d55 (diff)
downloadpoky-d3abad15046e4e5d8aeefa529e6e101ed4e95137.tar.gz
epiphany: Do not bypass initialization of variable with __attribute__((cleanup))
This is reported with clang e.g. ../../../../../../../workspace/sources/epiphany/lib/ephy-web-app-utils.c:391:5: error: cannot jump from this goto statement to its label goto out; ^ ../../../../../../../workspace/sources/epiphany/lib/ephy-web-app-utils.c:398:20: note: jump bypasses initialization of variable with __attribute__((cleanup)) g_autofree char *app_file = g_build_filename (profile_dir, ".app", NULL); ^ ../../../../../../../workspace/sources/epiphany/lib/ephy-web-app-utils.c:385:5: error: cannot jump from this goto statement to its label goto out; ^ ../../../../../../../workspace/sources/epiphany/lib/ephy-web-app-utils.c:398:20: note: jump bypasses initialization of variable with __attribute__((cleanup)) g_autofree char *app_file = g_build_filename (profile_dir, ".app", NULL); ^ Ensure that the initialization is deterministic for goto to work reliably (From OE-Core rev: 19e4c1f63abc82cf5f8d1eaac28d8fd5d09bf9d3) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-gnome')
-rw-r--r--meta/recipes-gnome/epiphany/epiphany_3.32.1.2.bb1
-rw-r--r--meta/recipes-gnome/epiphany/files/0001-web-app-utils-Clean-up-ephy_web_application_create.patch79
2 files changed, 80 insertions, 0 deletions
diff --git a/meta/recipes-gnome/epiphany/epiphany_3.32.1.2.bb b/meta/recipes-gnome/epiphany/epiphany_3.32.1.2.bb
index ba2e851bb6..49631d92d7 100644
--- a/meta/recipes-gnome/epiphany/epiphany_3.32.1.2.bb
+++ b/meta/recipes-gnome/epiphany/epiphany_3.32.1.2.bb
@@ -12,6 +12,7 @@ REQUIRED_DISTRO_FEATURES = "x11 opengl"
12 12
13SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ 13SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
14 file://0002-help-meson.build-disable-the-use-of-yelp.patch \ 14 file://0002-help-meson.build-disable-the-use-of-yelp.patch \
15 file://0001-web-app-utils-Clean-up-ephy_web_application_create.patch \
15 " 16 "
16SRC_URI[archive.md5sum] = "93faec353e9f62519859e6164350fd5d" 17SRC_URI[archive.md5sum] = "93faec353e9f62519859e6164350fd5d"
17SRC_URI[archive.sha256sum] = "a8284fb9bbc8b7914a154a8eac1598c8b59ae421e0d685146fb48198427926be" 18SRC_URI[archive.sha256sum] = "a8284fb9bbc8b7914a154a8eac1598c8b59ae421e0d685146fb48198427926be"
diff --git a/meta/recipes-gnome/epiphany/files/0001-web-app-utils-Clean-up-ephy_web_application_create.patch b/meta/recipes-gnome/epiphany/files/0001-web-app-utils-Clean-up-ephy_web_application_create.patch
new file mode 100644
index 0000000000..ea644fb985
--- /dev/null
+++ b/meta/recipes-gnome/epiphany/files/0001-web-app-utils-Clean-up-ephy_web_application_create.patch
@@ -0,0 +1,79 @@
1From 49f435217873e679b142f64d3e7def919fb642bb Mon Sep 17 00:00:00 2001
2From: Michael Catanzaro <mcatanzaro@igalia.com>
3Date: Wed, 8 May 2019 15:58:32 +0000
4Subject: [PATCH] web-app-utils: Clean up ephy_web_application_create()
5
6Fixes #764
7
8(cherry picked from commit 4e998d45e4cc549a7ca561a33895b0fbcf7ba6bb)
9Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/epiphany/commit/a6a022c9c498ad5dcf7f2220644a7520df74ca31]
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13 lib/ephy-web-app-utils.c | 24 ++++++++++--------------
14 1 file changed, 10 insertions(+), 14 deletions(-)
15
16diff --git a/lib/ephy-web-app-utils.c b/lib/ephy-web-app-utils.c
17index 97f3f24..fc68a96 100644
18--- a/lib/ephy-web-app-utils.c
19+++ b/lib/ephy-web-app-utils.c
20@@ -374,46 +374,42 @@ ephy_web_application_create (const char *id,
21 const char *name,
22 GdkPixbuf *icon)
23 {
24- char *profile_dir;
25- char *desktop_file_path = NULL;
26+ g_autofree char *app_file = NULL;
27+ g_autofree char *profile_dir = NULL;
28+ g_autofree char *desktop_file_path = NULL;
29
30 /* If there's already a WebApp profile for the contents of this
31 * view, do nothing. */
32 profile_dir = ephy_web_application_get_profile_directory (id);
33 if (g_file_test (profile_dir, G_FILE_TEST_IS_DIR)) {
34 g_warning ("Profile directory %s already exists", profile_dir);
35- goto out;
36+ return NULL;
37 }
38
39 /* Create the profile directory, populate it. */
40 if (g_mkdir_with_parents (profile_dir, 488) == -1) {
41 g_warning ("Failed to create directory %s", profile_dir);
42- goto out;
43+ return NULL;
44 }
45
46 /* Skip migration for new web apps. */
47 ephy_profile_utils_set_migration_version_for_profile_dir (EPHY_PROFILE_MIGRATION_VERSION, profile_dir);
48
49 /* Create an .app file. */
50- g_autofree char *app_file = g_build_filename (profile_dir, ".app", NULL);
51+ app_file = g_build_filename (profile_dir, ".app", NULL);
52 int fd = g_open (app_file, O_WRONLY|O_CREAT|O_TRUNC, 0644);
53 if (fd < 0) {
54- LOG ("Failed to create .app file: %s", g_strerror (errno));
55- goto out;
56- } else {
57- close (fd);
58+ g_warning ("Failed to create .app file: %s", g_strerror (errno));
59+ return NULL;
60 }
61+ close (fd);
62
63 /* Create the deskop file. */
64 desktop_file_path = create_desktop_file (id, name, address, profile_dir, icon);
65 if (desktop_file_path)
66 ephy_web_application_initialize_settings (profile_dir);
67
68- out:
69- if (profile_dir)
70- g_free (profile_dir);
71-
72- return desktop_file_path;
73+ return g_steal_pointer (&desktop_file_path);
74 }
75
76 char *
77--
782.21.0
79