diff options
Diffstat (limited to 'community/xfburn/fix_empty_dir_segfault.patch')
-rw-r--r-- | community/xfburn/fix_empty_dir_segfault.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/community/xfburn/fix_empty_dir_segfault.patch b/community/xfburn/fix_empty_dir_segfault.patch new file mode 100644 index 0000000000..93418ae413 --- /dev/null +++ b/community/xfburn/fix_empty_dir_segfault.patch @@ -0,0 +1,48 @@ +--- ./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); + |