After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 445456 - links referencing each other lead to crash
links referencing each other lead to crash
Status: RESOLVED DUPLICATE of bug 607974
Product: nautilus
Classification: Core
Component: general
2.18.x
Other Linux
: Normal critical
: ---
Assigned To: Christian Neumair
Nautilus Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-06-08 11:33 UTC by Christian Kirbach
Modified: 2010-04-16 18:11 UTC
See Also:
GNOME target: ---
GNOME version: 2.17/2.18


Attachments
Proposed patch (1.37 KB, patch)
2007-06-29 11:57 UTC, Christian Neumair
needs-work Details | Review
revised proposed patch (1.35 KB, patch)
2007-06-29 14:25 UTC, Christian Kirbach
needs-work Details | Review

Description Christian Kirbach 2007-06-08 11:33:31 UTC
1. create a test folder. Do not use your Desktop or you'll have lots of fun
2. create empty test file foo (text file or whatever).
3. drag-and-drop foo into the same folder while pressing ALT.
4. choose to reate a link
5. delete foo
6. create a link to the link to foo
7. rename last link to foo


very similar to a Windows XP bug: 
http://www.heise.de/security/foren/go.shtml?read=1&msg_id=12842370&forum_id=44155


(gdb) bt full
  • #0 g_type_check_instance
    from /usr/lib/libgobject-2.0.so.0
  • #1 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #2 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #3 nautilus_file_emit_changed
    at nautilus-file.c line 5485
  • #4 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 794
  • #5 nautilus_file_changed
    at nautilus-file.c line 5431
  • #6 nautilus_file_emit_changed
    at nautilus-file.c line 5491
  • #7 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 794
  • #8 nautilus_file_changed
    at nautilus-file.c line 5431
  • #9 nautilus_file_emit_changed
    at nautilus-file.c line 5491
  • #10 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 794
  • #11 nautilus_file_changed
    at nautilus-file.c line 5431
  • #12 nautilus_file_emit_changed
    at nautilus-file.c line 5491
  • #13 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 794
  • #14 nautilus_file_changed
    at nautilus-file.c line 5431
  • #15 nautilus_file_emit_changed
    at nautilus-file.c line 5491
  • #16 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 794
  • #17 nautilus_file_changed
    at nautilus-file.c line 5431
  • #18 nautilus_file_emit_changed
    at nautilus-file.c line 5491
  • #1 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #2 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #3 nautilus_file_emit_changed
    at nautilus-file.c line 5485
  • #4 nautilus_directory_emit_change_signals
    at nautilus-directory.c line 794
  • #5 nautilus_file_changed
    at nautilus-file.c line 5431
  • #6 nautilus_file_emit_changed
    at nautilus-file.c line 5491
$5 = (GList *) 0x879ae10
(gdb) p *link_files
$6 = {data = 0x8580980, next = 0x0, prev = 0x0}
(gdb) p *p
$7 = {data = 0x8580980, next = 0x0, prev = 0x0}
Comment 1 Christian Neumair 2007-06-29 11:57:21 UTC
Created attachment 90856 [details] [review]
Proposed patch

Good catch!

What do you think about this patch?
Comment 2 Christian Kirbach 2007-06-29 14:19:47 UTC
Unlike you I am not a coding wizard but there is something fishy with that patch. nautilus won't compile with it.

Something is really fishy since the first two secions(!) patch nautilus_file_changed (NautilusFile *file). for some reason it did not work for me, only the second section was applied.
Comment 3 Christian Kirbach 2007-06-29 14:25:54 UTC
Created attachment 90875 [details] [review]
revised proposed patch

Manually integrated the patch and my diff is slightly different...

build succeeds now
Comment 4 Alexander Larsson 2009-03-11 13:12:48 UTC
Hmm. File change emissions are very common. Allocating a hashtable for these seems like a bad idea from a performance perspective. We should instead have a boolean in NautilusFile (in-changed) and short-circuit the emit based on that.
Comment 5 Cosimo Cecchi 2010-04-16 18:11:34 UTC
Closing as a duplicate of bug #607974, as that has a patch attached that uses another approach.

Thanks for the bug report. This particular bug has already been reported into our bug tracking system, but please feel free to report any further bugs you find.

*** This bug has been marked as a duplicate of bug 607974 ***