I decided to keep looking at this since I had already started. Just to
be clear, the work around of removing duplicates from .hidden works fine
to fix this.

But here's what I found in the code (caution: I'm new to programming with 
linux, feel free to correct me)
-The crash occurs because the GHashTable has a key_destroy_func and 
g_hash_table_insert_node() is called with  keep_new_key = false instead of true 
in ghash.c
-In order to fix this, g_hash_table_replace() should be used instead of 
g_hash_table_insert() in read_dot_hidden_file() in nautilus-directory-async.c. 
I ran nautilus with this change and it didn't crash anymore.
-I did a quick search to see if this situation happens anywhere else in 
Nautilus, the only spot I found is at nautilus-view.c:3315, but I'm not sure if 
that's an issue or not.
-If I am correct, it seems strange that the comments in ghash.c for using 
GHashTable as a set indicate that g_hash_table_insert should be used, when it 
actually causes this issue.

-- 
You received this bug notification because you are a member of Ubuntu
Desktop Bugs, which is subscribed to nautilus in Ubuntu.
https://bugs.launchpad.net/bugs/879130

Title:
  invalid read (segfault) on duplicate lines in .hidden

To manage notifications about this bug go to:
https://bugs.launchpad.net/nautilus/+bug/879130/+subscriptions

-- 
desktop-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/desktop-bugs

Reply via email to