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 770920 - rhythmbox crashed with SIGSEGV during import
rhythmbox crashed with SIGSEGV during import
Status: RESOLVED FIXED
Product: rhythmbox
Classification: Other
Component: Importing
HEAD
Other Linux
: Normal normal
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-09-06 02:21 UTC by gnome.vrb
Modified: 2016-09-06 12:31 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Return when we have no more tracks to process. (525 bytes, patch)
2016-09-06 02:21 UTC, gnome.vrb
committed Details | Review

Description gnome.vrb 2016-09-06 02:21:03 UTC
Created attachment 334864 [details] [review]
Return when we have no more tracks to process.

Steps to reproduce:

1. Click Import.
2. Select a dir which has few tracks ( 2 is enough )
3. Click mouse on first track. Do not click import.
4. Press tab until the keyboard focus is on 'Import 1 selected track'
5. Keep pressing 'space bar' continuously.
6. Rhythmbox crashes when the last track is processed.

The issue is due to the fact that, we fire "clicked" events on import button, even after all tracks have been processed.
Comment 1 gnome.vrb 2016-09-06 02:27:01 UTC
Backtrace for reference.

Core was generated by `/home/dev/source/git/rhythmbox/shell/.libs/lt-rhythmbox -d'.
Program terminated with signal SIGSEGV, Segmentation fault.
  • #0 add_entries
    at rb-import-dialog.c line 233
  • #0 add_entries
    at rb-import-dialog.c line 233
  • #1 g_main_context_dispatch
    at ././glib/gmain.c line 3201
  • #2 g_main_context_dispatch
    at ././glib/gmain.c line 3854
  • #3 g_main_context_iterate
    at ././glib/gmain.c line 3927
  • #4 g_main_context_iteration
    at ././glib/gmain.c line 3988
  • #5 g_application_run
    at ././gio/gapplication.c line 2381
  • #6 rb_application_run
    at rb-application.c line 655
  • #7 main
    at main.c line 88
$1 = (GList *) 0x0
(gdb)
Comment 2 Jonathan Matthew 2016-09-06 12:30:48 UTC
Review of attachment 334864 [details] [review]:

I changed the g_list_length call to just check if 'entries' is NULL.  There's no need to count the entire list just to determine whether it's empty or not.  With that change, pushed as commit 027dcae.