[OE-core] [oe-core][PATCH 1/1] gnome-desktop3: eliminate erroneous free()
Joe Slater
joe.slater at windriver.com
Tue Mar 6 00:04:32 UTC 2018
gnome-desktop-thumbnail-don-t-convert-time_t-to-long.patch introduced
a call to localtime() and a free() of the structure returned. This is
incorrect, as the structure is static. For glibc 2.26, this will cause
the program to abort. Eliminate the free() and call localtime_r()
which lets us allocate the tm structure.
Signed-off-by: Joe Slater <joe.slater at windriver.com>
---
.../gnome-desktop/fix_erroneous_free.patch | 35 ++++++++++++++++++++++
.../gnome-desktop/gnome-desktop3_3.26.2.bb | 1 +
2 files changed, 36 insertions(+)
create mode 100644 meta/recipes-gnome/gnome-desktop/gnome-desktop/fix_erroneous_free.patch
diff --git a/meta/recipes-gnome/gnome-desktop/gnome-desktop/fix_erroneous_free.patch b/meta/recipes-gnome/gnome-desktop/gnome-desktop/fix_erroneous_free.patch
new file mode 100644
index 0000000..c27e4d5
--- /dev/null
+++ b/meta/recipes-gnome/gnome-desktop/gnome-desktop/fix_erroneous_free.patch
@@ -0,0 +1,35 @@
+gnome-desktop3: eliminate erroneous free()
+
+Do not free() a static structure. Use re-entrant localtime_r().
+
+Upstream-Status: Pending
+
+Signed-off-by: Joe Slater <jslater at windriver.com>
+
+
+--- a/libgnome-desktop/gnome-desktop-thumbnail.c
++++ b/libgnome-desktop/gnome-desktop-thumbnail.c
+@@ -1200,7 +1200,7 @@ save_thumbnail (GdkPixbuf *pixbuf,
+ char *tmp_path = NULL;
+ int tmp_fd;
+ char mtime_str[21];
+- struct tm *tmp_mtime = NULL;
++ struct tm tmp_mtime;
+ gboolean ret = FALSE;
+ GError *error = NULL;
+ const char *width, *height;
+@@ -1220,11 +1220,10 @@ save_thumbnail (GdkPixbuf *pixbuf,
+ goto out;
+ close (tmp_fd);
+
+- tmp_mtime = localtime (&mtime);
+- if (!tmp_mtime)
++ if (!localtime_r (&mtime,&tmp_mtime))
+ goto out;
+- strftime (mtime_str, 21, "%s", tmp_mtime);
+- free (tmp_mtime);
++
++ strftime (mtime_str, 21, "%s", &tmp_mtime);
+ width = gdk_pixbuf_get_option (pixbuf, "tEXt::Thumb::Image::Width");
+ height = gdk_pixbuf_get_option (pixbuf, "tEXt::Thumb::Image::Height");
+
diff --git a/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.26.2.bb b/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.26.2.bb
index cd6c194..2cd3234 100644
--- a/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.26.2.bb
+++ b/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.26.2.bb
@@ -14,6 +14,7 @@ SRC_URI += " \
file://gnome-desktop-thumbnail-don-t-convert-time_t-to-long.patch \
file://0001-configure.ac-Remove-gnome-common-macro-calls.patch \
file://0001-Disable-libseccomp-sycall-filtering-mechanism.patch \
+ file://fix_erroneous_free.patch \
"
DEPENDS += "intltool-native gsettings-desktop-schemas gconf virtual/libx11 gtk+3 glib-2.0 startup-notification xkeyboard-config iso-codes udev"
--
2.7.4
More information about the Openembedded-core
mailing list