summaryrefslogtreecommitdiff
path: root/x11-libs/libfm/files/libfm-fix-use-after-free.diff
blob: 4a0ae61c40b4900cd3ea3c2eb42903dd18ee9a7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
diff -Naur libfm-1.2.3/src/base/fm-config.c libfm-1.2.3-fix-uaf-new2/src/base/fm-config.c
--- libfm-1.2.3/src/base/fm-config.c	2014-10-14 18:29:21.000000000 +0200
+++ libfm-1.2.3-fix-uaf-new2/src/base/fm-config.c	2016-06-18 18:23:35.721837971 +0200
@@ -346,7 +346,8 @@
     cfg->modules_blacklist = NULL;
     cfg->system_modules_blacklist = NULL;
     _cfg_monitor_free(cfg);
-    g_free(cfg->_cfg_name);
+    if(name != cfg->_cfg_name)
+        g_free(cfg->_cfg_name);
     if(G_LIKELY(!name))
         name = "libfm/libfm.conf";
     else
@@ -363,7 +364,8 @@
         }
     }
 
-    cfg->_cfg_name = g_strdup(name);
+    if(name != cfg->_cfg_name)
+        cfg->_cfg_name = g_strdup(name);
     dirs = g_get_system_config_dirs();
     /* bug SF #887: first dir in XDG_CONFIG_DIRS is the most relevant
        so we shoult process the list in reverse order */