GNOME Bugzilla – Bug 673551
gnome-settings-daemon crash when system date is earlier than starttime from "background.xml"
Last modified: 2012-04-16 15:27:50 UTC
On Fedora 17, a system date in earlier than 2012-01-29 will cause gnome-settings-daemon to crash in gnome-bg.c get_current_slide(). This is because /usr/share/backgronuds/beefy-miracle/default/beefy-miracle.xml has a starttime of 2012-01-29 , any earlier date means the get_current_slide() cannot find a current slide, and hits g_assert_not_reached(). Fedora is using this "background.xml" only to set a static background image that auto-selects between various background image sizes depending on desktop/monitor size. There is clearly no intention of using it as slides -- both timestart and duration are not relevant to this use case. * gnome-desktop must not crash when timestart > system date * testing indicates that "timestart" tokens are optional. I'll file a bug with Fedora's backgrounds to remove timestart. * duration should similarly be optional -- testing shows removal causes a crash More testing/debugging notes at https://bugzilla.redhat.com/show_bug.cgi?id=809707
*** Bug 673640 has been marked as a duplicate of this bug. ***
Created attachment 211878 [details] [review] fix Here's a fix for the crash. The get_current_slide() code already explicitly considers for a system clock in the past, but the following calculations were confused because of show->total_duration being out of sync with slide->duration for a one-slide slideshow. Please let me know if its OK to commit.
With this patch, will a multi-slide background still crash if the clock is off?
Was there ever a crash with a multi-slide background? I doubt it - this was a quirk limited to a one-slide case. But there may be similar issues in the same code for other situations. (the F17 background has only a single slide)
Comment on attachment 211878 [details] [review] fix Thanks!