diff options
Diffstat (limited to 'bus/config-parser.c')
| -rw-r--r-- | bus/config-parser.c | 29 | 
1 files changed, 15 insertions, 14 deletions
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:        {  | 
