From a157ec7f72839473113934fc12581645b421e6d9 Mon Sep 17 00:00:00 2001 From: "John (J5) Palmieri" Date: Thu, 2 Nov 2006 23:56:48 +0000 Subject: * bus/config-parser.c (service_dirs_find_dir): use _dbus_list_get_next_link so we don't get stuck in an infinite loop (start_busconfig_child): move processing of standard_session_servicedirs tags here because they have no content (bus_config_parser_content): check we don't have content in standard_session_servicedirs tag * tools/Makefile.am: Make sure the /var/lib/dbus directory is created Packagers need to own this directory --- ChangeLog | 14 ++++++++++++++ bus/config-parser.c | 29 +++++++++++++++-------------- tools/Makefile.am | 4 ++++ 3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 59006224..bd9e412b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2006-11-02 John (J5) Palmieri + + * bus/config-parser.c (service_dirs_find_dir): use + _dbus_list_get_next_link so we don't get stuck in an infinite loop + (start_busconfig_child): move processing of standard_session_servicedirs + tags here because they have no content + (bus_config_parser_content): check we don't have content in + standard_session_servicedirs tag + +2006-11-02 John (J5) Palmieri + + * tools/Makefile.am: Make sure the /var/lib/dbus directory is created + Packagers need to own this directory + 2006-11-02 John (J5) Palmieri * tools/run-with-tmp-session-bus.sh: fixed script to replace the diff --git a/bus/config-parser.c b/bus/config-parser.c index 70bc441d..dbffd3ff 100644 --- a/bus/config-parser.c +++ b/bus/config-parser.c @@ -297,7 +297,7 @@ service_dirs_find_dir (DBusList **service_dirs, _dbus_assert (dir != NULL); - for (link = *service_dirs; link; link = link->next) + for (link = *service_dirs; link; link = _dbus_list_get_next_link(service_dirs, link)) { const char *link_dir; @@ -805,6 +805,10 @@ start_busconfig_child (BusConfigParser *parser, } else if (strcmp (element_name, "standard_session_servicedirs") == 0) { + DBusList *link; + DBusList *dirs; + dirs = NULL; + if (!check_no_attributes (parser, "standard_session_servicedirs", attribute_names, attribute_values, error)) return FALSE; @@ -814,6 +818,15 @@ start_busconfig_child (BusConfigParser *parser, return FALSE; } + if (!_dbus_get_standard_session_servicedirs (&dirs)) + { + BUS_SET_OOM (error); + return FALSE; + } + + while ((link = _dbus_list_pop_first_link (&dirs))) + service_dirs_append_link_unique_or_free (&parser->service_dirs, link); + return TRUE; } else if (strcmp (element_name, "servicedir") == 0) @@ -2191,6 +2204,7 @@ bus_config_parser_content (BusConfigParser *parser, case ELEMENT_ALLOW: case ELEMENT_DENY: case ELEMENT_FORK: + case ELEMENT_STANDARD_SESSION_SERVICEDIRS: case ELEMENT_SELINUX: case ELEMENT_ASSOCIATE: if (all_whitespace (content)) @@ -2352,19 +2366,6 @@ bus_config_parser_content (BusConfigParser *parser, } } break; - case ELEMENT_STANDARD_SESSION_SERVICEDIRS: - { - DBusList *link; - DBusList *dirs; - dirs = NULL; - - if (!_dbus_get_standard_session_servicedirs (&dirs)) - goto nomem; - - while ((link = _dbus_list_pop_first_link (&dirs))) - service_dirs_append_link_unique_or_free (&parser->service_dirs, link); - } - break; case ELEMENT_SERVICEDIR: { diff --git a/tools/Makefile.am b/tools/Makefile.am index c6814e9d..9fad7a78 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -41,3 +41,7 @@ man_MANS = dbus-send.1 dbus-monitor.1 dbus-launch.1 dbus-cleanup-sockets.1 dbus- EXTRA_DIST = $(man_MANS) run-with-tmp-session-bus.sh CLEANFILES = \ run-with-tmp-session-bus.conf + +#create the /var/lib/data directory for dbus-uuidgen +localstatelibdir = $(localstatedir)/lib/dbus +localstatelib_DATA = -- cgit