Hello! I can confirm this bug in unstable with brasero 3.2.0. I've looked in GNOME Bugzilla but not found anything usefull. So I've created patch to avoid this segfault. Fault happens because new folder must have flag 'is_grafted' (project node not from real file or folder), but code in brasero-data-project.c in function brasero_data_project_add_node_real doesn't handle nodes with flag 'is_fake' correctly (new empty folder has this flag). Node isn't marked as grafted with function brasero_file_node_graft. I've just added call of this function. It's working for me.
diff -Nru brasero-3.2.0/debian/changelog brasero-3.2.0/debian/changelog --- brasero-3.2.0/debian/changelog 2012-03-14 22:16:20.000000000 +0400 +++ brasero-3.2.0/debian/changelog 2012-03-25 23:45:56.000000000 +0400 @@ -1,3 +1,10 @@ +brasero (3.2.0-4.1) unstable; urgency=low + + * Non-maintainer upload. + * Fixed segfault when renaming or removing folder in project. + + -- Andrej Belym <white.wolf.2...@gmail.com> Sun, 25 Mar 2012 23:43:01 +0400 + brasero (3.2.0-4) unstable; urgency=low * Build against tracker 0.14. diff -Nru brasero-3.2.0/debian/patches/grafted_folders.patch brasero-3.2.0/debian/patches/grafted_folders.patch --- brasero-3.2.0/debian/patches/grafted_folders.patch 1970-01-01 03:00:00.000000000 +0300 +++ brasero-3.2.0/debian/patches/grafted_folders.patch 2012-03-26 00:07:07.000000000 +0400 @@ -0,0 +1,16 @@ +Description: Fixed segfault when renaming or removing folder in project. + When adding folder from filesystem to project and creating new folder in this folder, removing or renaming causes segfault. + This happens because new folder must have flag 'is_grafted' (project node not from real file or folder), but code in brasero-data-project.c in function brasero_data_project_add_node_real doesn't handle nodes with flag 'is_fake' correctly (new empty folder has this flag). Node isn't marked as grafted with function brasero_file_node_graft. I've just added call of this function. +Author: Andrej Belym <white.wolf.2...@gmail.com> +Index: brasero-3.2.0/libbrasero-burn/brasero-data-project.c +============================================================= +--- brasero-3.2.0.orig/libbrasero-burn/brasero-data-project.c ++++ brasero-3.2.0/libbrasero-burn/brasero-data-project.c +@@ -1674,6 +1674,7 @@ brasero_data_project_add_node_real (Bras + /* The node is a fake directory; graft it as well as all the + * nodes already in the tree with the same URI */ + graft = brasero_data_project_uri_graft_nodes (self, uri); ++ brasero_file_node_graft (node, graft); + } + else { + gchar *parent_uri; diff -Nru brasero-3.2.0/debian/patches/series brasero-3.2.0/debian/patches/series --- brasero-3.2.0/debian/patches/series 2012-03-14 04:10:15.000000000 +0400 +++ brasero-3.2.0/debian/patches/series 2012-03-25 23:49:29.000000000 +0400 @@ -2,3 +2,4 @@ 02_gcc-format-security 03_cue-invalid-frame-75.patch 04_tracker-0.14.patch +grafted_folders.patch
Description: Fixed segfault when renaming or removing folder in project. When adding folder from filesystem to project and creating new folder in this folder, removing or renaming causes segfault. This happens because new folder must have flag 'is_grafted' (project node not from real file or folder), but code in brasero-data-project.c in function brasero_data_project_add_node_real doesn't handle nodes with flag 'is_fake' correctly (new empty folder has this flag). Node isn't marked as grafted with function brasero_file_node_graft. I've just added call of this function. Author: Andrej Belym <white.wolf.2...@gmail.com> Index: brasero-3.2.0/libbrasero-burn/brasero-data-project.c ============================================================= --- brasero-3.2.0.orig/libbrasero-burn/brasero-data-project.c +++ brasero-3.2.0/libbrasero-burn/brasero-data-project.c @@ -1674,6 +1674,7 @@ brasero_data_project_add_node_real (Bras /* The node is a fake directory; graft it as well as all the * nodes already in the tree with the same URI */ graft = brasero_data_project_uri_graft_nodes (self, uri); + brasero_file_node_graft (node, graft); } else { gchar *parent_uri;