summaryrefslogtreecommitdiff
path: root/system/xfburn/fix_empty_dir_segfault.diff
blob: b5543a53588ee340bf49eed6667f628f3b4c5834 (plain)
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
--- xfburn/xfburn-data-composition.c	2011-02-17 16:37:03.000000000 +0100
+++ xfburn/xfburn-data-composition_patched.c	2011-02-17 16:40:40.000000000 +0100
@@ -1874,26 +1874,29 @@
           g_error ("Failed adding %s as a node to the image: code %X!", src, r);
       }

-      basename = g_path_get_basename (src);
+      /* Check names only for items not manually created (#613563) */
+      if (type != DATA_COMPOSITION_TYPE_DIRECTORY || src != NULL) {
+        basename = g_path_get_basename (src);
+
+        /* check if the file has been renamed */
+        if (strcmp (basename, name) != 0) {
+          /* rename the iso_node */
+          r = iso_node_set_name (node, name);
+
+          if (r == 0) {
+            /* The first string is the renamed name, the second one the original name */
+            xfce_warn (_("Duplicate filename '%s' for '%s'"), name, src);
+
+            g_free (basename);
+            g_free (name);
+            g_free (src);

-      /* check if the file has been renamed */
-      if (strcmp (basename, name) != 0) {
-        /* rename the iso_node */
-        r = iso_node_set_name (node, name);
-
-        if (r == 0) {
-          /* The first string is the renamed name, the second one the original name */
-          xfce_warn (_("Duplicate filename '%s' for '%s'"), name, src);
-
-          g_free (basename);
-          g_free (name);
-          g_free (src);
-
-          continue;
+            continue;
+          }
         }
+        g_free (basename);
       }

-      g_free (basename);
       g_free (name);
       g_free (src);