Blame packages/f/feedbackd/109.patch

b06f90
From 847c21d78ea61faa101f58792389373ce2109d54 Mon Sep 17 00:00:00 2001
b06f90
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
b06f90
Date: Mon, 13 Mar 2023 15:24:16 +0100
b06f90
Subject: [PATCH 1/9] build: Avoid meson deprecation warning
b06f90
b06f90
---
b06f90
 libfeedback/meson.build | 2 +-
b06f90
 1 file changed, 1 insertion(+), 1 deletion(-)
b06f90
b06f90
diff --git a/libfeedback/meson.build b/libfeedback/meson.build
b06f90
index 09a495c..27d94c6 100644
b06f90
--- a/libfeedback/meson.build
b06f90
+++ b/libfeedback/meson.build
b06f90
@@ -87,7 +87,6 @@ if introspection
b06f90
     '--quiet',
b06f90
     '-DLIBFEEDBACK_COMPILATION',
b06f90
     '-DLIBFEEDBACK_USE_UNSTABLE_API',
b06f90
-    '--warn-error',
b06f90
     '--warn-all',
b06f90
   ]
b06f90
 
b06f90
@@ -104,6 +103,7 @@ if introspection
b06f90
         install_dir_gir : girdir,
b06f90
     install_dir_typelib : typelibdir,
b06f90
              extra_args : libfeedback_gir_extra_args,
b06f90
+         fatal_warnings : true,
b06f90
    )
b06f90
 
b06f90
   if get_option('vapi')
b06f90
-- 
b06f90
GitLab
b06f90
b06f90
b06f90
From 64076e5ad08dd297a1d602b4a37b640e9a03c784 Mon Sep 17 00:00:00 2001
b06f90
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
b06f90
Date: Mon, 13 Mar 2023 15:24:17 +0100
b06f90
Subject: [PATCH 2/9] fbd-event: Simplify
b06f90
b06f90
Gbp-Dch: Ignore
b06f90
---
b06f90
 src/fbd-event.c | 4 +---
b06f90
 1 file changed, 1 insertion(+), 3 deletions(-)
b06f90
b06f90
diff --git a/src/fbd-event.c b/src/fbd-event.c
b06f90
index 96e1c6d..5791d2f 100644
b06f90
--- a/src/fbd-event.c
b06f90
+++ b/src/fbd-event.c
b06f90
@@ -376,8 +376,6 @@ fbd_event_remove_feedback (FbdEvent *self, FbdFeedbackBase *feedback)
b06f90
 void
b06f90
 fbd_event_run_feedbacks (FbdEvent *self)
b06f90
 {
b06f90
-  GSList *l;
b06f90
-
b06f90
   g_return_if_fail (FBD_IS_EVENT (self));
b06f90
 
b06f90
   g_debug ("Running %d feedbacks for event %d", g_slist_length (self->feedbacks), self->id);
b06f90
@@ -392,7 +390,7 @@ fbd_event_run_feedbacks (FbdEvent *self)
b06f90
     g_source_set_name_by_id (self->timeout_id, "event timeout source");
b06f90
   }
b06f90
 
b06f90
-  for (l = self->feedbacks; l; l = l->next) {
b06f90
+  for (GSList *l = self->feedbacks; l; l = l->next) {
b06f90
     FbdFeedbackBase *fb = FBD_FEEDBACK_BASE (l->data);
b06f90
     fbd_feedback_run (fb);
b06f90
   }
b06f90
-- 
b06f90
GitLab
b06f90
b06f90
b06f90
From 03b0f4c2aa35548e0655db002b21e1e02dd8210e Mon Sep 17 00:00:00 2001
b06f90
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
b06f90
Date: Mon, 13 Mar 2023 15:24:18 +0100
b06f90
Subject: [PATCH 3/9] fbd-event: Make sure we iterate the list safely
b06f90
b06f90
When all feedbacks are done the event signals "feedbacks-ended" which
b06f90
lets the manager dispose the feedback. When all feedbacks end instantly
b06f90
and synchronously (as is the case with the dummy feedback) this triggers
b06f90
the disposal of the event within the loop leading to a crash.
b06f90
b06f90
Make sure the object doesn't go away be referencing it during the loop
b06f90
iteration.
b06f90
b06f90
We didn't see this before as glib's slice allocator for lists papered
b06f90
over this for us.
b06f90
b06f90
Closes: https://source.puri.sm/Librem5/feedbackd/-/issues/69
b06f90
---
b06f90
 src/fbd-event.c | 2 ++
b06f90
 1 file changed, 2 insertions(+)
b06f90
b06f90
diff --git a/src/fbd-event.c b/src/fbd-event.c
b06f90
index 5791d2f..917b5e2 100644
b06f90
--- a/src/fbd-event.c
b06f90
+++ b/src/fbd-event.c
b06f90
@@ -390,10 +390,12 @@ fbd_event_run_feedbacks (FbdEvent *self)
b06f90
     g_source_set_name_by_id (self->timeout_id, "event timeout source");
b06f90
   }
b06f90
 
b06f90
+  g_object_ref (self);
b06f90
   for (GSList *l = self->feedbacks; l; l = l->next) {
b06f90
     FbdFeedbackBase *fb = FBD_FEEDBACK_BASE (l->data);
b06f90
     fbd_feedback_run (fb);
b06f90
   }
b06f90
+  g_object_unref (self);
b06f90
 }
b06f90
 
b06f90
 /**
b06f90
-- 
b06f90
GitLab
b06f90
b06f90
b06f90
From 460985cfa03ad0a091bb2acf0d283606edb95593 Mon Sep 17 00:00:00 2001
b06f90
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
b06f90
Date: Mon, 13 Mar 2023 15:24:20 +0100
b06f90
Subject: [PATCH 4/9] tests: Don't leak json string
b06f90
b06f90
---
b06f90
 tests/test-fbd-feedback-theme.c | 5 +++--
b06f90
 1 file changed, 3 insertions(+), 2 deletions(-)
b06f90
b06f90
diff --git a/tests/test-fbd-feedback-theme.c b/tests/test-fbd-feedback-theme.c
b06f90
index c5cb636..5bd00da 100644
b06f90
--- a/tests/test-fbd-feedback-theme.c
b06f90
+++ b/tests/test-fbd-feedback-theme.c
b06f90
@@ -37,10 +37,10 @@ test_fbd_feedback_theme_profiles (void)
b06f90
 							"event-name", "event2",
b06f90
 							NULL);
b06f90
   g_autoptr(FbdFeedbackTheme) theme = fbd_feedback_theme_new (THEME_NAME);
b06f90
-
b06f90
   FbdFeedbackProfile *profile_full = fbd_feedback_profile_new ("full");
b06f90
   FbdFeedbackProfile *profile_quiet = fbd_feedback_profile_new ("quiet");
b06f90
   FbdFeedbackProfile *profile;
b06f90
+  g_autofree char *json = NULL;
b06f90
 
b06f90
   fbd_feedback_profile_add_feedback (profile_quiet, FBD_FEEDBACK_BASE(quiet_fb1));
b06f90
   fbd_feedback_profile_add_feedback (profile_quiet, FBD_FEEDBACK_BASE(quiet_fb2));
b06f90
@@ -55,7 +55,8 @@ test_fbd_feedback_theme_profiles (void)
b06f90
   profile = fbd_feedback_theme_get_profile (theme, "full");
b06f90
   g_assert_true (FBD_IS_FEEDBACK_PROFILE (profile));
b06f90
 
b06f90
-  g_print ("%s\n", json_gobject_to_data (G_OBJECT(theme), NULL));
b06f90
+  json = json_gobject_to_data (G_OBJECT(theme), NULL);
b06f90
+  g_print ("%s\n", json);
b06f90
 }
b06f90
 
b06f90
 
b06f90
-- 
b06f90
GitLab
b06f90
b06f90
b06f90
From 1933a23172e231917bd51af76d19b204c7c08805 Mon Sep 17 00:00:00 2001
b06f90
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
b06f90
Date: Mon, 13 Mar 2023 15:24:20 +0100
b06f90
Subject: [PATCH 5/9] tests: Don't leak profiles and test that
b06f90
b06f90
We finalize the theme first so the last reference is dropped when
b06f90
finalizing the profiles.
b06f90
---
b06f90
 tests/test-fbd-feedback-theme.c | 6 +++++-
b06f90
 1 file changed, 5 insertions(+), 1 deletion(-)
b06f90
b06f90
diff --git a/tests/test-fbd-feedback-theme.c b/tests/test-fbd-feedback-theme.c
b06f90
index 5bd00da..f1987be 100644
b06f90
--- a/tests/test-fbd-feedback-theme.c
b06f90
+++ b/tests/test-fbd-feedback-theme.c
b06f90
@@ -36,7 +36,7 @@ test_fbd_feedback_theme_profiles (void)
b06f90
   g_autoptr (FbdFeedbackDummy) full_fb2 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY,
b06f90
 							"event-name", "event2",
b06f90
 							NULL);
b06f90
-  g_autoptr(FbdFeedbackTheme) theme = fbd_feedback_theme_new (THEME_NAME);
b06f90
+  FbdFeedbackTheme *theme = fbd_feedback_theme_new (THEME_NAME);
b06f90
   FbdFeedbackProfile *profile_full = fbd_feedback_profile_new ("full");
b06f90
   FbdFeedbackProfile *profile_quiet = fbd_feedback_profile_new ("quiet");
b06f90
   FbdFeedbackProfile *profile;
b06f90
@@ -57,6 +57,10 @@ test_fbd_feedback_theme_profiles (void)
b06f90
 
b06f90
   json = json_gobject_to_data (G_OBJECT(theme), NULL);
b06f90
   g_print ("%s\n", json);
b06f90
+
b06f90
+  g_assert_finalize_object (theme);
b06f90
+  g_assert_finalize_object (profile_full);
b06f90
+  g_assert_finalize_object (profile_quiet);
b06f90
 }
b06f90
 
b06f90
 
b06f90
-- 
b06f90
GitLab
b06f90
b06f90
b06f90
From 5206c3aae53f52a7629eb891027adcf850ed3f6e Mon Sep 17 00:00:00 2001
b06f90
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
b06f90
Date: Mon, 13 Mar 2023 15:24:21 +0100
b06f90
Subject: [PATCH 6/9] feedback-profile: Don't leak json array when serializing
b06f90
 profile
b06f90
b06f90
json_array_add_element doesn't transfer ownership
b06f90
---
b06f90
 src/fbd-feedback-profile.c | 2 +-
b06f90
 1 file changed, 1 insertion(+), 1 deletion(-)
b06f90
b06f90
diff --git a/src/fbd-feedback-profile.c b/src/fbd-feedback-profile.c
b06f90
index 28d6f29..94cbb36 100644
b06f90
--- a/src/fbd-feedback-profile.c
b06f90
+++ b/src/fbd-feedback-profile.c
b06f90
@@ -58,7 +58,7 @@ fbd_feedback_profile_serializable_serialize_property (JsonSerializable *serializ
b06f90
     GHashTableIter iter;
b06f90
     gpointer key;
b06f90
     FbdFeedbackProfile *profile;
b06f90
-    JsonArray *array = json_array_sized_new (FBD_FEEDBACK_PROFILE_N_PROFILES);
b06f90
+    g_autoptr (JsonArray) array = json_array_sized_new (FBD_FEEDBACK_PROFILE_N_PROFILES);
b06f90
 
b06f90
     g_hash_table_iter_init (&iter, self->feedbacks);
b06f90
     while (g_hash_table_iter_next (&iter, (gpointer *)&key, (gpointer *) &profile)) {
b06f90
-- 
b06f90
GitLab
b06f90
b06f90
b06f90
From 7becab334633747f9b73edfaa103ffecc15a9bfb Mon Sep 17 00:00:00 2001
b06f90
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
b06f90
Date: Mon, 13 Mar 2023 15:24:21 +0100
b06f90
Subject: [PATCH 7/9] feedback-theme: Don't leak json array when serializing
b06f90
 profile
b06f90
b06f90
json_array_add_element doesn't transfer ownership.
b06f90
---
b06f90
 src/fbd-feedback-theme.c | 2 +-
b06f90
 1 file changed, 1 insertion(+), 1 deletion(-)
b06f90
b06f90
diff --git a/src/fbd-feedback-theme.c b/src/fbd-feedback-theme.c
b06f90
index 3274920..966feb8 100644
b06f90
--- a/src/fbd-feedback-theme.c
b06f90
+++ b/src/fbd-feedback-theme.c
b06f90
@@ -53,7 +53,7 @@ fbd_theme_serializable_serialize_property (JsonSerializable *serializable,
b06f90
     GHashTableIter iter;
b06f90
     gpointer key;
b06f90
     FbdFeedbackProfile *profile;
b06f90
-    JsonArray *array = json_array_sized_new (FBD_FEEDBACK_PROFILE_N_PROFILES);
b06f90
+    g_autoptr (JsonArray) array = json_array_sized_new (FBD_FEEDBACK_PROFILE_N_PROFILES);
b06f90
 
b06f90
     g_hash_table_iter_init (&iter, self->profiles);
b06f90
     while (g_hash_table_iter_next (&iter, (gpointer *)&key, (gpointer *) &profile)) {
b06f90
-- 
b06f90
GitLab
b06f90
b06f90
b06f90
From 3d7c4b376a7c94a6566f883d6d17bb9085428c43 Mon Sep 17 00:00:00 2001
b06f90
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
b06f90
Date: Mon, 13 Mar 2023 15:24:23 +0100
b06f90
Subject: [PATCH 8/9] feedback-theme: Don't leak parent name
b06f90
b06f90
---
b06f90
 src/fbd-feedback-theme.c | 1 +
b06f90
 1 file changed, 1 insertion(+)
b06f90
b06f90
diff --git a/src/fbd-feedback-theme.c b/src/fbd-feedback-theme.c
b06f90
index 966feb8..e416f89 100644
b06f90
--- a/src/fbd-feedback-theme.c
b06f90
+++ b/src/fbd-feedback-theme.c
b06f90
@@ -182,6 +182,7 @@ fbd_feedback_theme_finalize (GObject *object)
b06f90
 {
b06f90
   FbdFeedbackTheme *self = FBD_FEEDBACK_THEME (object);
b06f90
 
b06f90
+  g_clear_pointer (&self->parent_name, g_free);
b06f90
   g_clear_pointer (&self->name, g_free);
b06f90
 
b06f90
   G_OBJECT_CLASS (fbd_feedback_theme_parent_class)->finalize (object);
b06f90
-- 
b06f90
GitLab
b06f90
b06f90
b06f90
From f9c65381db4382c087835c728b0ad990b1e6cea0 Mon Sep 17 00:00:00 2001
b06f90
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
b06f90
Date: Mon, 13 Mar 2023 15:24:24 +0100
b06f90
Subject: [PATCH 9/9] tests/profile: Don't leak json node
b06f90
b06f90
---
b06f90
 tests/test-fbd-feedback-profile.c | 2 +-
b06f90
 1 file changed, 1 insertion(+), 1 deletion(-)
b06f90
b06f90
diff --git a/tests/test-fbd-feedback-profile.c b/tests/test-fbd-feedback-profile.c
b06f90
index 96fd247..546cc90 100644
b06f90
--- a/tests/test-fbd-feedback-profile.c
b06f90
+++ b/tests/test-fbd-feedback-profile.c
b06f90
@@ -68,7 +68,7 @@ test_fbd_feedback_profile_parse (void)
b06f90
         "    }                                    ";
b06f90
   g_autoptr (GError) err = NULL;
b06f90
   g_autoptr (FbdFeedbackProfile) profile = NULL;
b06f90
-  JsonNode *node;
b06f90
+  g_autoptr (JsonNode) node = NULL;
b06f90
   FbdFeedbackBase *fb;
b06f90
 
b06f90
   node = json_from_string(json, &err;;
b06f90
-- 
b06f90
GitLab
b06f90