GNOME Bugzilla – Bug 678138
Opening properties dialog on MTP device that is not ready crashes Rhythmbox
Last modified: 2012-11-11 01:12:19 UTC
Using: Fedora 17 Rhythmbox Git commit 96aa2cdf libmtp 1.1.3 Description: When I connect an Android device using Cyanogenmod 9 and MTP to transfer files, Rhythmbox displays the device in the browser on the left hand side. I guess it takes time for the device to load, though, because instead of the actual name of the device, it is generically named "Media Player". Given time, the name changes to "cm_tenderloin". If I right click on the device while it is titled "Media Player", and click on "Properties", Rhythmbox crashes. Steps to Reproduce: 1. Start Rhythmbox. Ensure it is built with support for MTP. Ensure the MTP plugin has been enabled. 2. Connect device 3. Watch for device to appear in left hand browser, under a generic name. 4. Before the name changes, right click on it, and select "Properties". Expected Result: Rhythmbox shouldn't crash. Either the Properties dialog should appear, or the user should be notified of some error. Received Result: Rhythmbox crashes.
Created attachment 216490 [details] [review] Patch to check if private data from RBSyncSettings object is NULL in some functions.
Review of attachment 216490 [details] [review]: This fix would result in a properties dialog that doesn't show anything useful. The user would then have to close it, wait until the device is fully loaded, then open it again. Of course it shouldn't crash, but we should do better than that. Either the action (one for each of the mtp, generic player and ipod plugins) should be made insensitive while a device is loading, or the properties dialog should show a 'loading' message if it's created before rb_media_player_source_load is called.
commit 9e353dc fixes this for the mtp plugin. The generic player and ipod sources call rb_media_player_source_load before returning from their selected methods, so this problem can't arise there.
*** Bug 688071 has been marked as a duplicate of this bug. ***