summaryrefslogtreecommitdiffstats
path: root/avahi-core/internal.h
diff options
context:
space:
mode:
authorPatrick Oppenlander <patrick@motec.com.au>2010-06-29 01:08:26 +0200
committerLennart Poettering <lennart@poettering.net>2010-06-29 01:09:28 +0200
commit3544d4584c70debc7bbf93c6dad00b303ff8919a (patch)
treefa72289ea4e76189732d70ab3e3b158da7f0dfea /avahi-core/internal.h
parent4cee342544b5d31022462ba522eed9959ebbd9dd (diff)
core: fix potential crash on service name collision
If there is a service name collision and the entry group callback calls avahi_s_entry_group_reset or avahi_s_entry_group free on the group in question, the entries were released. This could cause a crash in withdraw_rrset as it is walking a list of entries at this time. The fix for this issue is to schedule a cleanup event to clean up entries after a a short timeout (currently one second). If a cleanup occurs for any other reason the event is cancelled. http://avahi.org/ticket/302
Diffstat (limited to 'avahi-core/internal.h')
-rw-r--r--avahi-core/internal.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/avahi-core/internal.h b/avahi-core/internal.h
index a4b10ed..eb7f146 100644
--- a/avahi-core/internal.h
+++ b/avahi-core/internal.h
@@ -121,6 +121,9 @@ struct AvahiServer {
int need_entry_cleanup, need_group_cleanup, need_browser_cleanup;
+ /* Used for scheduling RR cleanup */
+ AvahiTimeEvent *cleanup_time_event;
+
AvahiTimeEventQueue *time_event_queue;
char *host_name, *host_name_fqdn, *domain_name;