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

Bug#1059524: marked as done (bookworm-pu: package mate-screensaver/1.26.1-1+deb12u1)



Your message dated Sat, 10 Feb 2024 13:11:20 +0000
with message-id <E1rYn8a-002yZx-Cn@coccia.debian.org>
and subject line Released with 12.5
has caused the Debian Bug report #1059524,
regarding bookworm-pu: package mate-screensaver/1.26.1-1+deb12u1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
1059524: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1059524
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: bookworm
User: release.debian.org@packages.debian.org
Usertags: pu
X-Debbugs-Cc: mate-screensaver@packages.debian.org
Control: affects -1 + src:mate-screensaver

Two memory leaks were resolved upstream and cherry-picked into this
bookworm-pu.

[ Reason ]
In mate-screensaver's preferences tool two memory leaks were discovered
and resolved by upstream.

[ Impact ]
Memleaks persist for mate-screensaver in bookworm if this upload gets rejected.

[ Tests ]
Manual smoke test.

[ Risks ]
Possible regression. Users of mate-screensaver will be affected.

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]

+  * debian/patches:
+    + Add 0001_mate-screensaver-preferences-fix-memory-leak.patch and
+      0002_mate-screensaver-preferences-fix-memory-leak.patch, fixing two
+      memleaks in the preferences tool of mate-screensaver.

[ Other info ]
None.
diff -Nru mate-screensaver-1.26.1/debian/changelog mate-screensaver-1.26.1/debian/changelog
--- mate-screensaver-1.26.1/debian/changelog	2021-12-14 07:45:02.000000000 +0100
+++ mate-screensaver-1.26.1/debian/changelog	2023-12-27 15:32:39.000000000 +0100
@@ -1,3 +1,12 @@
+mate-screensaver (1.26.1-1+deb12u1) bookworm; urgency=medium
+
+  * debian/patches:
+    + Add 0001_mate-screensaver-preferences-fix-memory-leak.patch and
+      0002_mate-screensaver-preferences-fix-memory-leak.patch, fixing two
+      memleaks in the preferences tool of mate-screensaver.
+
+ -- Mike Gabriel <sunweaver@debian.org>  Wed, 27 Dec 2023 15:32:39 +0100
+
 mate-screensaver (1.26.1-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru mate-screensaver-1.26.1/debian/patches/0001_mate-screensaver-preferences-fix-memory-leak.patch mate-screensaver-1.26.1/debian/patches/0001_mate-screensaver-preferences-fix-memory-leak.patch
--- mate-screensaver-1.26.1/debian/patches/0001_mate-screensaver-preferences-fix-memory-leak.patch	1970-01-01 01:00:00.000000000 +0100
+++ mate-screensaver-1.26.1/debian/patches/0001_mate-screensaver-preferences-fix-memory-leak.patch	2023-12-27 15:30:26.000000000 +0100
@@ -0,0 +1,198 @@
+From 8c12ca79d237a36e7d41a644b24c0753cafc968c Mon Sep 17 00:00:00 2001
+From: rbuj <robert.buj@gmail.com>
+Date: Fri, 22 Oct 2021 17:24:56 +0200
+Subject: [PATCH 1/2] mate-screensaver-preferences: fix memory leak
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ src/mate-screensaver-preferences.c | 125 +++++++++++++++--------------
+ 1 file changed, 64 insertions(+), 61 deletions(-)
+
+diff --git a/src/mate-screensaver-preferences.c b/src/mate-screensaver-preferences.c
+index 3c7621a..46e780e 100644
+--- a/src/mate-screensaver-preferences.c
++++ b/src/mate-screensaver-preferences.c
+@@ -934,10 +934,14 @@ drag_data_received_cb (GtkWidget        *widget,
+ static char *
+ time_to_string_text (long time)
+ {
+-	char *secs, *mins, *hours, *string;
+-	int   sec, min, hour;
+-
+-	int n, inc_len, len_minutes;
++	char  *secs, *mins, *hours, *string;
++	char  *chk_hour_str, *chk_minute_str, *chk_hour_minute_str;
++	char  *chk_ascii_str;
++	int    sec, min, hour;
++	size_t chk_ascii_len;
++	int    len_minutes;
++	int    n, inc_len;
++	int    diff;
+ 
+ 	sec = time % 60;
+ 	time = time - sec;
+@@ -954,60 +958,63 @@ time_to_string_text (long time)
+ 	secs = g_strdup_printf (ngettext ("%d second",
+ 	                                  "%d seconds", sec), sec);
+ 
+-	inc_len = strlen (g_strdup_printf (_("%s %s"),
+-	                  g_strdup_printf (ngettext ("%d hour",
+-	                                             "%d hours", 1), 1),
+-	                  g_strdup_printf (ngettext ("%d minute",
+-	                                             "%d minutes", 59), 59))) - 1;
++	/* inc_len = it's the lenght of the string "1 hour 59 minutes" */
++	chk_hour_str = g_strdup_printf (ngettext ("%d hour",
++	                                          "%d hours", 1), 1);
++	chk_minute_str = g_strdup_printf (ngettext ("%d minute",
++	                                            "%d minutes", 59), 59);
++	chk_hour_minute_str = g_strdup_printf (_("%s %s"),
++	                                       chk_hour_str, chk_minute_str);
++	inc_len = strlen (chk_hour_minute_str) - 1;
++	g_free (chk_hour_str);
++	g_free (chk_minute_str);
++	g_free (chk_hour_minute_str);
+ 
+ 	len_minutes = 0;
+-
+ 	for (n = 2; n < 60; n++)
+ 	{
+-		if (n < 10)
+-		{
+-			if ((strlen (g_str_to_ascii (g_strdup_printf (ngettext ("%d minute",
+-	                                                                        "%d minutes", n), n), NULL)) - 2) > len_minutes)
++		char   *minute_str    = g_strdup_printf (ngettext ("%d minute",
++		                                                   "%d minutes", n), n);
++		char   *ascii_str     = g_str_to_ascii (minute_str, NULL);
++		size_t  ascii_str_len = strlen (ascii_str);
++		size_t  extra_length  = (n < 10) ? 2 : 3;
+ 
+-				len_minutes = strlen (g_str_to_ascii (g_strdup_printf (ngettext ("%d minute",
+-	                                                                                         "%d minutes", n), n), NULL)) - 2;
+-		}
+-		else
+-		{
+-			if ((strlen (g_str_to_ascii (g_strdup_printf (ngettext ("%d minute",
+-	                                                                        "%d minutes", n), n), NULL)) - 3) > len_minutes)
++		diff = (int) (ascii_str_len - extra_length);
++		if (diff > len_minutes)
++			len_minutes = diff;
+ 
+-				len_minutes = strlen (g_str_to_ascii (g_strdup_printf (ngettext ("%d minute",
+-	                                                                                         "%d minutes", n), n), NULL)) - 3;
+-		}
++		g_free (minute_str);
++		g_free (ascii_str);
+ 	}
+ 
+-	if ((strlen (g_str_to_ascii (g_strdup_printf (ngettext ("%d minute",
+-	                                                        "%d minutes", 1), 1), NULL)) - 2) > len_minutes)
++	/* check the lenght of the string "1 minute" */
++	chk_minute_str = g_strdup_printf (ngettext ("%d minute",
++	                                            "%d minutes", 1), 1);
++	chk_ascii_str = g_str_to_ascii (chk_minute_str, NULL);
++	chk_ascii_len = strlen (chk_ascii_str);
++	diff = (int) (chk_ascii_len - 2);
+ 
+-		len_minutes = strlen (g_str_to_ascii (g_strdup_printf (ngettext ("%d minute",
+-	                                                                         "%d minutes", 1), 1), NULL)) - 2;
++	if (diff > len_minutes)
++		len_minutes = diff;
+ 
++	g_free (chk_minute_str);
++	g_free (chk_ascii_str);
++
++	/* len_minutes = MAX (1, len_minutes) */
+ 	if (len_minutes < 1)
+ 		len_minutes = 1;
+ 
+ 	if (hour > 0)
+ 	{
+ 		if (sec > 0)
+-		{
+ 			/* hour:minutes:seconds */
+ 			string = g_strdup_printf (_("%s %s %s"), hours, mins, secs);
+-		}
+ 		else if (min > 0)
+-		{
+ 			/* hour:minutes */
+ 			string = g_strdup_printf (_("%s %s"), hours, mins);
+-		}
+ 		else
+-		{
+ 			/* hour */
+ 			string = g_strdup_printf (_("%s"), hours);
+-		}
+ 	}
+ 	else if (min > 0)
+ 	{
+@@ -1019,36 +1026,28 @@ time_to_string_text (long time)
+ 		else
+ 		{
+ 			/* minutes */
++			size_t max_len;
++
+ 			string = g_strdup_printf (_("%s"), mins);
+ 
+-			if (min < 10)
+-			{
+-				if (min == 1)
+-					while (strlen (string) != (len_minutes + inc_len + 3))
+-					{
+-						if (strlen (string) % 2 == 0)
+-							string = g_strconcat (string, " ", NULL);
+-						else
+-							string = g_strconcat (" " , string, NULL);
+-					}
+-				else
+-					while (strlen (string) != (len_minutes + inc_len))
+-					{
+-						if (strlen (string) % 2 == 0)
+-							string = g_strconcat (string, " ", NULL);
+-						else
+-							string = g_strconcat (" " , string, NULL);
+-					}
+-			}
++			if (min == 1)
++				max_len = (size_t) (len_minutes + inc_len + 3);
++			else if (min < 10)
++				max_len = (size_t) (len_minutes + inc_len);
+ 			else
++				max_len = (size_t) (len_minutes + inc_len - 1);
++
++			while (strlen (string) != max_len)
+ 			{
+-				while (strlen (string) != (len_minutes + inc_len - 1))
+-				{
+-					if (strlen (string) % 2 == 0)
+-						string = g_strconcat (string, " ", NULL);
+-					else
+-						string = g_strconcat (" " , string, NULL);
+-				}
++				char *string_aux;
++
++				if (strlen (string) % 2 == 0)
++					string_aux = g_strconcat (string, " ", NULL);
++				else
++					string_aux = g_strconcat (" " , string, NULL);
++
++				g_free (string);
++				string = string_aux;
+ 			}
+ 		}
+ 	}
+@@ -1090,7 +1089,11 @@ enabled_checkbox_toggled (GtkToggleButton *button, gpointer user_data)
+ static void
+ picture_filename_changed (GtkFileChooserButton *button, gpointer user_data)
+ {
+-	g_settings_set_string (screensaver_settings, "picture-filename", gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (button)));
++	char *picture_filename;
++
++	picture_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (button));
++	g_settings_set_string (screensaver_settings, "picture-filename", picture_filename);
++	g_free (picture_filename);
+ }
+ 
+ static void
+-- 
+2.39.2
+
diff -Nru mate-screensaver-1.26.1/debian/patches/0002_mate-screensaver-preferences-fix-memory-leak.patch mate-screensaver-1.26.1/debian/patches/0002_mate-screensaver-preferences-fix-memory-leak.patch
--- mate-screensaver-1.26.1/debian/patches/0002_mate-screensaver-preferences-fix-memory-leak.patch	1970-01-01 01:00:00.000000000 +0100
+++ mate-screensaver-1.26.1/debian/patches/0002_mate-screensaver-preferences-fix-memory-leak.patch	2023-12-27 15:30:26.000000000 +0100
@@ -0,0 +1,42 @@
+From ff4270809d096292a3b532046b6145d7a3b3dfb0 Mon Sep 17 00:00:00 2001
+From: rbuj <robert.buj@gmail.com>
+Date: Sun, 30 Jan 2022 17:59:08 +0100
+Subject: [PATCH 2/2] mate-screensaver-preferences: fix memory leak
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ src/mate-screensaver-preferences.c | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/src/mate-screensaver-preferences.c b/src/mate-screensaver-preferences.c
+index 46e780e..286218e 100644
+--- a/src/mate-screensaver-preferences.c
++++ b/src/mate-screensaver-preferences.c
+@@ -663,19 +663,20 @@ separator_func (GtkTreeModel *model,
+                 GtkTreeIter  *iter,
+                 gpointer      data)
+ {
+-	int   column = GPOINTER_TO_INT (data);
+-	char *text;
++	int       column = GPOINTER_TO_INT (data);
++	gboolean  res = FALSE;
++	char     *text;
+ 
+ 	gtk_tree_model_get (model, iter, column, &text, -1);
+ 
+ 	if (text != NULL && strcmp (text, "__separator") == 0)
+ 	{
+-		return TRUE;
++		res = TRUE;
+ 	}
+ 
+ 	g_free (text);
+ 
+-	return FALSE;
++	return res;
+ }
+ 
+ static void
+-- 
+2.39.2
+
diff -Nru mate-screensaver-1.26.1/debian/patches/series mate-screensaver-1.26.1/debian/patches/series
--- mate-screensaver-1.26.1/debian/patches/series	2020-02-13 11:21:54.000000000 +0100
+++ mate-screensaver-1.26.1/debian/patches/series	2023-12-27 15:30:52.000000000 +0100
@@ -1,2 +1,4 @@
 1002_RDA-support-Make-MATE-s-screensaver-aware-of-being-r.patch
 1003_RDA-Disable-switch-user-button-if-session-is-remote.patch
+0001_mate-screensaver-preferences-fix-memory-leak.patch
+0002_mate-screensaver-preferences-fix-memory-leak.patch

--- End Message ---
--- Begin Message ---
Version: 12.5

The upload requested in this bug has been released as part of 12.5.

--- End Message ---

Reply to: