[gupnp] Fix potential crash in resource_expire()



Hi,

I found this crash report in our database this morning:

 0x4083139c  g_hash_table_remove_internal() from /usr/lib/libglib-2.0.so.0
 0x403d51a8  resource_expire() from /usr/lib/libgssdp-1.0.so.2
 0x408400ac  g_timeout_dispatch() from /usr/lib/libglib-2.0.so.0
 0x4083f7a0  g_main_context_dispatch() from /usr/lib/libglib-2.0.so.0
 0x40842a18  g_main_context_iterate() from /usr/lib/libglib-2.0.so.0
 0x40842ffc  g_main_loop_run() from /usr/lib/libglib-2.0.so.0
 0x00066e10  main() from remote-control

After some investigation I found that this crash happened because our
code reacts to the "resource-unavailable" signal by setting the
GSSDPResourceBrowser inactive. The call to
gssdp_resource_browser_set_active() clears the resource cache which
then causes a crash in resource_expire() directly after the signal
emission. The patch that I am submitting here fixes this.

--
To unsubscribe send a mail to gupnp+unsubscribe\@o-hand.com



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]