File: Fix-an-invalid-pointer-crash-with-glib-2.83.2.patch

package info (click to toggle)
mate-sensors-applet 1.26.0-1.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 7,492 kB
  • sloc: ansic: 6,270; makefile: 529; xml: 75; sh: 24
file content (51 lines) | stat: -rw-r--r-- 2,227 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
From 9b74dc16d852a40d37f7ce6c236406959fd013e5 Mon Sep 17 00:00:00 2001
From: lukefromdc <lukefromdc@hushmail.com>
Date: Mon, 13 Jan 2025 22:39:13 -0500
Subject: [PATCH] Fix an invalid pointer crash with glib 2.83.2

The typecast to non-const gchar produced invalid pointer errors on free() with glib 2.83.2
---
 plugins/udisks2/udisks2-plugin.c | 19 +++++--------------
 1 file changed, 5 insertions(+), 14 deletions(-)

Index: mate-sensors-applet-1.26.0/plugins/udisks2/udisks2-plugin.c
===================================================================
--- mate-sensors-applet-1.26.0.orig/plugins/udisks2/udisks2-plugin.c
+++ mate-sensors-applet-1.26.0/plugins/udisks2/udisks2-plugin.c
@@ -311,16 +311,15 @@ syslog(LOG_ERR, "propdict2 type: %s", g_
 #endif
 
             /* get data */
-            gchar *id = NULL;
-            gchar *model = NULL;
+            const gchar *id = NULL;
+            const gchar *model = NULL;
 
             gboolean smartenabled;
             gdouble temp;
 
-            /* NULL, bc we don't care about the length of the string
-             * typecast bc g_variant_get_string() returns const char* */
-            id = (gchar *) g_variant_get_string (g_variant_lookup_value (propdict, "Id", G_VARIANT_TYPE_STRING), NULL);
-            model = (gchar *) g_variant_get_string (g_variant_lookup_value (propdict, "Model", G_VARIANT_TYPE_STRING), NULL);
+            /* NULL, bc we don't care about the length of the string*/
+            id = g_variant_get_string (g_variant_lookup_value (propdict, "Id", G_VARIANT_TYPE_STRING), NULL);
+            model = g_variant_get_string (g_variant_lookup_value (propdict, "Model", G_VARIANT_TYPE_STRING), NULL);
 
             smartenabled = g_variant_get_boolean (g_variant_lookup_value (propdict2, "SmartEnabled", G_VARIANT_TYPE_BOOLEAN));
             temp = g_variant_get_double (g_variant_lookup_value (propdict2, "SmartTemperature", G_VARIANT_TYPE_DOUBLE));
@@ -373,14 +372,6 @@ syslog(LOG_ERR, "No temp data for device
 
                 g_debug ("No temp data for device: %s\n", key);
             }
-
-#ifdef UD2PD
-syslog(LOG_ERR, "b4 free1");
-#endif
-
-            g_free (id);
-            g_free (model);
-
         }
 
 #ifdef UD2PD