#484 libfm0: Removable directory not removed if no x flag

1.0.1
closed-fixed
libfm (217)
5
2012-08-13
2011-09-15
Marcin Szewczyk
No

Originally posted as:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=639982

Package: libfm0
Version: 0.1.14-2
Severity: normal

Test case:
drwxr-xr-x 3 wodny wodny 4096 Sep 1 12:39 .
drwxr-xr-x 5 wodny wodny 4096 Sep 1 12:39 ..
drwx------ 2 root root 4096 Sep 1 12:39 testdir

Testdir is empty.

Rmdir testdir will succeed.
Gvfs-rm will succeed.
Removing testdir through pcmanfm will fail.

Some debug:
$ gdb pcmanfm

[...]

(gdb) b _fm_file_ops_job_delete_file

[...]

Breakpoint 1, _fm_file_ops_job_delete_file (job=0x81b6880, gf=0xb2a45520,
inf=0x0) at job/fm-file-ops-job-delete.c:33
33 job/fm-file-ops-job-delete.c: No such file or directory.
in job/fm-file-ops-job-delete.c

[...]

84 if(is_dir)
(gdb) n
88 if(!g_file_is_native(gf))
(gdb) n
107 GFileMonitor* old_mon = fjob->src_folder_mon;
(gdb) n
108 GFileEnumerator* enu = g_file_enumerate_children(gf,
query,
(gdb) n
111 if(!enu)
(gdb) n
108 GFileEnumerator* enu = g_file_enumerate_children(gf,
query,
(gdb) n
111 if(!enu)
(gdb) n
113 FmJobErrorAction act = fm_job_emit_error(job, err,
FM_JOB_ERROR_MODERATE);
(gdb) n
114 g_error_free(err);
(gdb) n
113 FmJobErrorAction act = fm_job_emit_error(job, err,
FM_JOB_ERROR_MODERATE);
(gdb) n
** (pcmanfm:12064): DEBUG: FmJob error: Permission denied
114 g_error_free(err);
(gdb) n
116 return FALSE;
(gdb) n
202 }

Discussion

1 2 > >> (Page 1 of 2)
  • PCMan
    PCMan
    2011-11-18

    • labels: --> libfm
    • assigned_to: nobody --> pcmanx
    • priority: 5 --> 6
    • milestone: --> 557433
     
  • PCMan
    PCMan
    2011-11-18

    I'll try to fix this before 1.0 release, but there is no guarantee since till now I'm not able to reproduce the bug here.

     
  • PCMan
    PCMan
    2012-05-21

    This is because pcmanfm tries to recursively delete the folder.
    Fixing this requires redesign of the file operation job system.
    Let's do it later.

     
  • PCMan
    PCMan
    2012-05-21

    • priority: 6 --> 3
    • milestone: 557433 --> 2334041
     
    • priority: 3 --> 5
     
    • milestone: 2334041 --> 2334032
     
  • I don't think so. pcmanx has already written about the reason but I assume it just has to wait for being fixed.

     
    • assigned_to: pcmanx --> lstranger
    • milestone: 2334032 --> 1.0.1
    • status: open --> open-accepted
     
  • Don't worry. I've fixed it locally so just wait for 1.0.1-beta. :)

     
1 2 > >> (Page 1 of 2)