CVE-2008-0595 dbus security policy circumvention
[platform/upstream/dbus.git] / ChangeLog
index a02394a..4b68cb3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,820 @@
+2008-02-26  John (J5) Palmieri  <johnp@redhat.com>
+
+       * CVE-2008-0595 - security policy of the type <allow send_interface=
+         "some.interface.WithMethods"/> work as an implicit allow for
+         messages sent without an interface bypassing the default deny rules
+         and potentially allowing restricted methods exported on the bus to be
+         executed by unauthorized users.  This patch fixes the issue.
+       * bus/policy.c (bus_client_policy_check_can_send,
+         bus_client_policy_check_can_receive): skip messages without an 
+         interface when evaluating an allow rule, and thus pass it to the
+         default deny rules
+
+2008-02-26  John (J5) Palmieri  <johnp@redhat.com>
+
+       * correctly unref connections without guids during shutdown
+       * dbus/dbus-connection.c (close_connection_on_shutdown): new method
+         split out from shared_connections_shutdown
+         (shared_connections_shutdown): shutdown all shared connections
+         without guids
+         (_dbus_connection_ref_unlocked): handle OOM when prepending no guid
+         connections to the shared_connections_no_guid list
+       * Patch by  Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
+
+2008-02-21  John (J5) Palmieri  <johnp@redhat.com>
+       
+       * fix build against the latest gcc/glibc
+       * dbus/dbus-sysdeps-unix.c: define _GNU_SOURCE
+       * bus/selinux.c: include limits.h
+       * Patch by Matthias Clasen <mclasen at redhat.com>
+
+2008-02-21  John (J5) Palmieri  <johnp@redhat.com>
+
+       * fixes dbus-launch so the bus goes away when X does
+         (Red Hat Bug #430412)
+       * tools/dbus-launch.c (main): set xdisplay = NULL
+       * Patch by Matthias Clasen <mclasen at redhat.com>
+
+2008-01-17  John (J5) Palmieri  <johnp@redhat.com>
+       
+       * Released 1.1.4
+
+2008-01-17  Timo Hoenig  <thoenig@suse.de>
+       * fix inotify support
+       * bus/dir-watch-inotify.c (_handle_inotify_watch): fix reading of the
+       inotify events. Also, use ssize_t not size_t for 'ret'.
+       * bus/dir-watch-inotify.c (bus_watch_directory): watch not only for
+       IN_MODIFY but also for IN_CREATE and IN_DELETE
+       * bus/dir-watch-inotify.c (bus_drop_all_directory_watches): drop the
+       inotify watches more elegantly by closing inotify:_fd, set inotify_fd to
+       -1 after dropping the watches
+
+2008-01-15 John (J5) Palmieri  <johnp@redhat.com>
+
+       * configure.in: post-release version bump
+
+2008-01-15 John (J5) Palmieri  <johnp@redhat.com>
+
+       * Released 1.1.3 (1.2.0RC1)
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+
+       * fix hacking to say git instead of cvs
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+
+       * patch by Sébastien Couret <10function at gmail dot com>
+
+       * dbus/dbus-marshal-recursive.c (all_reader_classes[]): wrap in 
+       #ifndef DBUS_DISABLE_ASSERT since it is only used in asserts which
+       are noop
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+
+       * patch by Magnus Henoch <henoch plus bfdo at dtek dot chalmers dot se>
+
+       * dbus/dbus-auth.c (handle_server_data_external_mech): handle SASL
+       EXTERNAL's inital empty responce (FDO Bug #9945)
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+
+       * bus/messagebus.in: add lsb headers (FDO Bug #11491)
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+
+       * patch by Peter O'Gorman <pogma at thewrittenword dot com>
+
+       * dbus/dbus-spawn.c (babysit_signal_handler): check write return value
+       so we don't hang (FDO Bug #11665)
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+
+       * patch by Peter O'Gorman <pogma at thewrittenword dot com>
+
+       * dbus/dbus-sysdeps.h: support for AIX poll implementation (FDO Bug 
+       #11666)
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+
+       * tests/name-test/run-test.sh: make more portable (FDO Bug #11667)
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+
+       * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
+
+       * dbus/dbus-connection.c (_dbus_connection_get_next_client_serial):
+       don't check for < 0 on an unsigned variable (FDO Bug #12924)
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+       
+       * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
+
+       * bus/bus.c (setup_server): check failed allocation (FDO Bug #12920)
+       
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+       
+       * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
+
+       * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): the API 
+       contract says sitter_p can be NULL, so let's check it (FDO Bug #12919)
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+       
+       * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
+
+       * dbus/dbus-spawn.c (read_ints, read_pid): use correct ssize_t type
+       instead of size_t (FDO Bug #12862)
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+       
+       * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
+
+       * dbus/dbus-errors.c (dbus_set_error): make sure to call va_end if we
+       hit an OOM error inside va_start (FDO Bug #12846)
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+       
+       * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
+
+       * dbus/dbus-connection.c (dbus_connection_send_with_reply): 
+       fix possible crash if pending_return is NULL (FDO Bug #12673)
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+
+       * portions of patch submitted by Tim Mooney 
+       <enchanter at users dot sourceforge dot net>
+
+       * configure.in: never auto-select libxml (FDO Bug #12479)
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+
+       * patches by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
+
+       * dbus/dbus-sysdeps-unix (_dbus_get_autolaunch_address): handle OOM
+       (FDO Bug #12945)
+
+       * dbus/dbus-uuidgen.c (return_uuid): handle OOM (FDO Bug #12928)
+
+       * dbus/dbus-misc.c (dbus_get_local_machine_id): handle OOM, fix return
+       value to return NULL not FALSE (FDO Bug #12946)
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+
+       * bus/bus.c (bus_context_check_security_policy): rewrite selinux error
+       handling to not abort due to a NULL read and to set the error only if
+       it is not already set (Based off of FDO Bug #12430)
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+
+       * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
+
+       * dbus/dbus-internals.c (_dbus_read_uuid_file_without_creating,
+       _dbus_create_uuid_file_exclusively): add OOM handling (FDO Bug #12952)
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+
+       * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
+
+       * dbus/dbus-spawn.c (babysit, babysitter_iteration): add error
+       handling when polling (FDO Bug #12954) 
+
+2008-01-15  John (J5) Palmieri  <johnp@redhat.com>
+
+       * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
+
+       * bus/config-parser.c (locate_attributes): remove dead code which
+       always evaluated to TRUE
+
+       * dbus/dbus-shell.c (_dbus_shell_quote): remove unused code
+
+2008-01-14  John (J5) Palmieri  <johnp@redhat.com>
+
+       * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
+
+       * bus/connection.c (bus_connection_complete): plug a possible 
+       BusClientPolicy leak (FDO Bug #13242)
+
+2008-01-14  John (J5) Palmieri  <johnp@redhat.com>
+
+       * patch by Frederic Crozat <fcrozat at mandriva dot com> (FDO Bz#
+       13268)
+
+       * add inotify support
+
+       * bus/Makefile.am: add inotify module to the build
+
+       * bus/dir-watch-inotify.c: inotify module based off the dnotify and
+       kqueue modules
+
+       * configure.in: add checks and switch for inotify
+       also add a printout at the end of configure if inotify and kqueue
+       support is being built in (dnotify already had this)
+
+2008-01-14  John (J5) Palmieri  <johnp@redhat.com>
+
+       * patch by Frederic Crozat <fcrozat at mandriva dot com>
+
+       * bus/dir-watch-dnotify.c (bus_watch_directory): watch for file
+       creates also
+
+2008-01-14  John (J5) Palmieri  <johnp@redhat.com>
+
+       * patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>
+
+       * dbus/dbus-transport-socket.c(do_reading): return message 
+       loader buffer in case of OOM (FDO Bug#12666)
+
+2008-01-14  John (J5) Palmieri  <johnp@redhat.com>
+
+       * configure.in: add warning to output when libxml is selected since
+       we don't have a libxml maintainer and expat works perfectly fine
+       for what we need an xml parser for
+
+2008-01-14  John (J5) Palmieri  <johnp@redhat.com>
+
+       * Patch by Andrea Luzzardi  <scox at sig11 dot org>: creates a
+       _dbus_geteuid function to fix EXTERNAL authentication in setuid
+       applications
+
+       *  dbus/dbus-sysdeps-unix.c (_dbus_geteuid): used to get the effective
+       uid of the running program
+       (_dbus_credentials_add_from_current_process): use geteuid instead of
+       getuid
+       (_dbus_append_user_from_current_process): use geteuid instead of
+       getuid
+
+       * dbus/dbus-sysdeps-util-unix.c (_dbus_change_to_daemon_user): use
+       geteuid instead of getuid
+       (_dbus_unix_user_is_at_console): use geteuid instead of getuid
+
+       * dbus/dbus-sysdeps-win.c (_dbus_geteuid): add a windows equivilant
+       that returns DBUS_UID_UNSET
+
+2007-12-18  Havoc Pennington  <hp@redhat.com>
+
+       * dbus/dbus-connection.c (_dbus_connection_block_pending_call):
+       fix location of curly braces
+
+2007-11-23  Sjoerd Simons  <sjoerd@luon.net>
+
+       * tools/dbus-launch.c: let both a normal dbus-launch and an
+       autolaunched bus save their parameters in X11 if possible. This makes
+       the autolaunch and non-autolaunch behaviour more similar. With the
+       exception that on a normal launch there will always be a new session
+       bus and not being able to save parameters is not fatal. This also
+       enables to launch programs directly with autolaunch (not very usefull
+       though).
+
+2007-10-31  Havoc Pennington  <hp@redhat.com>
+
+       * bus/selinux.c (log_audit_callback): rewrite to use
+       _dbus_string_copy_to_buffer_with_nul()
+
+       * dbus/dbus-string.c (_dbus_string_copy_to_buffer): change to NOT
+       nul-terminate the buffer; fail an assertion if there is not enough
+       space in the target buffer. This fixes two bugs where
+       copy_to_buffer was used to copy the binary bytes in a UUID, where
+       nul termination did not make sense. Bug reported by David Castelow.
+       (_dbus_string_copy_to_buffer_with_nul): new function that always
+       nul-terminates the buffer, and fails an assertion if there is not 
+       enough space in the buffer.
+
+2007-10-23  Havoc Pennington  <hp@redhat.com>
+
+       * bus/bus.c (bus_context_new): use the new name here
+
+       * bus/selinux.c (bus_selinux_audit_init): rename from audit_init()
+       to avoid possible libc conflict, and declare it in .h file to
+       avoid a warning
+
+2007-10-19  Havoc Pennington  <hp@redhat.com>  
+       
+       * bus/bus.c (bus_context_new): put audit_init() in HAVE_SELINUX
+       
+2007-10-19  Havoc Pennington  <hp@redhat.com>  
+
+       * bus/bus.c (bus_context_new): put the audit_init() in here
+       instead, which I believe ends up being the same as where it was
+       before, though I'm not sure I understand why it goes here.
+
+       * dbus/dbus-sysdeps-util-unix.c (_dbus_change_to_daemon_user):
+       remove audit_init() from here, this file can't depend on code in
+       bus/ directory
+
+2007-10-16  Simon McVittie  <simon.mcvittie@collabora.co.uk>
+
+       * configure.in: *Actually* fix detection of i486 atomic ops -
+       my previous attempt at a fix would always enable them due to wrong
+       quoting. Patch from Colin Walters <walters@verbum.org>
+
+2007-10-11  Simon McVittie  <simon.mcvittie@collabora.co.uk>
+
+       * configure.in: enable Autoconf's AC_C_INLINE to avoid compilation
+       failure with gcc -ansi
+       * dbus/dbus-macros.h, dbus/dbus-arch-deps.h.in: Use new macro
+       _DBUS_GNUC_EXTENSION (the same as G_GNUC_EXTENSION) to avoid -ansi
+       warnings about use of "long long".
+       * dbus/dbus-server-socket.c: remove unused variable when assertions
+       are disabled
+       * dbus/dbus-marshal-validate.c: avoid empty statements by removing
+       stray semicolons
+       * tools/dbus-launch.c: convert C++-style comment to C-style, add {}
+       for clarity
+       * .gitignore: ignore vi swapfiles
+       * dbus/dbus-errors.h, dbus/dbus-errors.c: Add DBUS_ERROR_INIT macro,
+       equivalent to calling dbus_error_init() on an uninitialized DBusError
+       * dbus/dbus-address.c, dbus/dbus-auth-script.c, dbus/dbus-auth-util.c,
+       dbus/dbus-connection.c, dbus/dbus-internals.c, dbus/dbus-keyring.c,
+       dbus/dbus-message-util.c, dbus/dbus-server.c, dbus/dbus-sha.c,
+       dbus/dbus-spawn-win.c, dbus/dbus-spawn.c,
+       dbus/dbus-sysdeps-util-win.c, dbus/dbus-transport-socket.c,
+       dbus/dbus-transport.c, dbus/dbus-userdb.c: use that macro instead of
+       calling dbus_error_init() where it's clearly equivalent
+       * configure.in, dbus/dbus-sysdeps.h, dbus/dbus-sysdeps-unix.c: Fix
+       detection of i486 atomic ops. Previously, the attempts to determine
+       support at compile-time on Darwin were causing the i486 atomic ops to
+       be used on *all* i386 or x86-64 GCC builds (AH_VERBATIM can't be
+       conditionalized like we were trying to).
+
+2007-10-10  Simon McVittie  <simon.mcvittie@collabora.co.uk>
+
+       * dbus/dbus-errors.c, dbus/dbus-protocol.h: Add new error
+       org.freedesktop.DBus.Error.ObjectPathInUse
+       * dbus/dbus-object-tree.h, dbus/dbus-object-tree.c,
+       dbus/dbus-connection.c, dbus/dbus-connection.h: add new functions
+       dbus_connection_try_register_object_path and
+       dbus_connection_try_register_fallback, which raise ObjectPathInUse
+       rather than asserting, to make object path registration less painful
+       for bindings
+       * .gitignore: add various things that weren't in .cvsignore because
+       CVS implicitly ignored them; generally bring up to date
+
+2007-10-09  John (J5) Palmieri  <johnp@redhat.com>
+
+       * tools/run-with-tmp-session-bus.sh: Fix env exports for better
+       portability (#9280)
+       * tools/dbus-send.1: Document syntax for container types in dbus-send
+       man file (#9553) - patch from Jack Spaar <jspaar at
+       users.sourceforge.net>
+
+       [Both OK for MIT/X11 relicensing -smcv]
+
+2007-10-09  Simon McVittie  <simon.mcvittie@collabora.co.uk>
+
+       * doc/dbus-specification.xml: Specifically forbid empty structs (#7969)
+       * doc/dbus-specification.xml: Patches from Kristoffer Lundén to clarify
+       description of DBUS_COOKIE_SHA1 (#10184) and allowable contents of a
+       variant (#10185, amended as per Havoc's comments)
+
+       [All of the above are OK for MIT/X11 licensing]
+
+2007-10-03  John (J5) Palmieri  <johnp@redhat.com>
+
+       * dbus/dbus-internals.h: fd.o bug #11678 Don't error out if compiler
+       does not support vararg macros. _dbus_verbose is the only function
+       that does this so make it a noop if vararg macros are not supported
+       * bus/selinux.c, dbus/dbus-sysdeps-util-unix.c: fd.o bug #12429
+       Reverse check to setpcap and only init audit if we were root
+       (patch by Dan Walsh <dwalsh@redhat.com>,
+       https://bugs.freedesktop.org/show_bug.cgi?id=12429). Reverse
+       we_were_root check to setpcap if we were root.  Also only init audit
+       if we were root.  So error dbus message will not show up when policy
+       reload happens.  dbus -session will no longer try to send audit
+       message, only system will.
+       * configure.in: fd.o bug #11872 improve linker test for --gc-sections.
+       Patch by Tim Mooney <enchanter at users.sourceforge.net>
+       * configure.in, dbus/dbus-sysdeps.c: fd.o bug #11872 fix clearenv for
+       systems that do not have it. Patch from Brian Cameron <brian.cameron
+       at sun.com>
+       * tools/dbus-launch.c: fd.o bug #12547 remove superfluous if.
+       Also convert tabs to spaces
+       * configure.in, bus/Makefile.am, dbus/Makefile.am: Correctly implement
+       -fPIC and -fPIE. For security reasons we want possition independent
+       code for libraries and possition independent executable for
+       executables. Before we were just enabling -fPIC. Now we correctly
+       enable -fPIC and -PIE for libdbus and the bus respectively. Proper
+       LD_FLAGS are set for each also.
+
+2007-09-20  Ryan Lortie  <desrt@desrt.ca>
+
+       Add argument path matching support.  Bug #11066.
+
+       * dbus/signals.c (struct DBusMatchRule, bus_match_rule_new,
+       bus_match_rule_set_arg, bus_match_rule_parse_arg_match,
+       match_rule_matches): Add support for parsing and matching on
+       arg0path='/some/path' type rules.
+
+       * dbus/signals.h (bus_match_rule_set_arg): change to take const
+       DBusString instead of const char * for the string to match against.
+
+       * dbus/dbus-bus.c: add a quick note to dbus_bus_add_match
+       documentation about the path matching.
+
+       * doc/dbus-specification.xml: add a more detailed description of the
+       changes here.
+
+2007-09-19  Ryan Lortie  <desrt@desrt.ca>
+
+       Add support for compacting DBusStrings to release wasted memory.
+
+       * dbus/dbus-string.[ch] (compact, _dbus_string_compact,
+       _dbus_string_lock): new compact function to free up allocated memory
+       that is no longer used.
+
+       * dbus/dbus-message.c (load_message): call _dbus_string_compact on the
+       message loader buffer.
+
+       * dbus/dbus-transport-socket.c (do_reading, do_writing): call
+       _dbus_string_compact on the incoming/outgoing "encoded" buffers.
+
+       * dbus/dbus-string-util.c (_dbus_string_test): add a few tests for
+       string compacting.
+
+2007-09-13  Ryan Lortie  <desrt@desrt.ca>
+
+       * HACKING: add more explicit git branch/tag instructions
+
+2007-09-13  Ryan Lortie  <desrt@desrt.ca>
+
+       migrate from cvs to git (cvs2svn -> git-svnimport).
+
+       * HACKING: update release/branch/tag instructions
+       * */.cvsignore: rename to .gitignore
+
+       also, clean up tags and branch names to conform to HACKING
+
+2007-08-17  William Jon McCann  <mccann@jhu.edu>
+
+       * update-dbus-docs.sh: upload DTD to server
+
+2007-08-17  Havoc Pennington  <hp@redhat.com>
+
+       * tools/dbus-launch-x11.c (set_address_in_x11): fix from Michael
+       Lorenz to use long not int with XChangeProperty format 32
+
+       * dbus/dbus-sysdeps-util-unix.c
+       (_dbus_write_pid_to_file_and_pipe): factor this out, and use the
+       same code in _dbus_become_daemon (where the parent writes the pid
+       file and to the pid pipe) and in bus_context_new (where the daemon
+       writes its own pid file and to its own pid pipe)
+
+       * bus/bus.c (bus_context_new): close the pid pipe after we print
+       to it. Also, don't write the pid to the pipe twice when we fork,
+       someone reported this bug a long time ago.
+
+2007-08-03  Havoc Pennington  <hp@redhat.com>
+
+       * configure.in: add major/minor/micro version number AC_SUBST
+
+       * dbus/dbus-arch-deps.h.in (DBUS_MAJOR_VERSION,
+       DBUS_MINOR_VERSION, DBUS_MICRO_VERSION, DBUS_VERSION_STRING,
+       DBUS_VERSION): collection of macros to get version of library we
+       are compiled against.
+
+       * dbus/dbus-misc.c (dbus_get_version): new function, to get
+       version of library we are linked against at runtime.
+
+2007-07-30  Havoc Pennington  <hp@redhat.com>
+
+       * bus/activation-helper.c (check_bus_name): don't use
+       _dbus_check_valid_bus_name() which is only around with
+       --enable-checks, instead use _dbus_validate_bus_name().
+       Bug #11766 from Diego <diego@pemas.net>
+
+2007-07-27  Havoc Pennington  <hp@redhat.com>
+
+       * configure.in: post-release version bump
+
+2007-07-27  Havoc Pennington  <hp@redhat.com>
+
+       * release 1.1.2
+
+2007-07-26  Havoc Pennington  <hp@redhat.com>
+
+       * bus/config-parser-trivial.c (check_return_values): disable a
+       test that hardcoded the bus user's name
+
+       * bus/dispatch.c (bus_dispatch_test_conf): remove the "if
+       (!use_launcher)" around the tests, they were only failing because
+       we didn't pass through all the expected errors from the helper.
+
+       * bus/activation-exit-codes.h
+       (BUS_SPAWN_EXIT_CODE_CHILD_SIGNALED): add a code for child segfaulting
+       (BUS_SPAWN_EXIT_CODE_GENERIC_FAILURE): make "1" be a generic
+       failure code, so if a third party launch helper were written it
+       could just always return 1 on failure.
+       
+2007-07-24  Daniel P. Berrange <dan@berrange.com>
+
+       * bus/dbus-daemon.1: Add docs on new syntax options for the bus
+       address strings
+
+       * dbus/dbus-address.c: Allow * in addresses (for binding to all
+       addresses).
+
+       * dbus/dbus-sysdeps.h:
+       * dbus/dbus-sysdeps-unix.c: Re-write to use getaddrinfo instead
+       of gethostbyname to enable protocol independant name lookup,
+       making IPv6 work
+
+       * dbus/dbus-server-socket.h:
+       * dbus/dbus-server-socket.c: Add support for 'family' in the
+       address string to specify ipv4 vs ipv6. Use a port string to
+       allow for service resolution. Allow for binding to multiple
+       sockets at once in case of dual IPv4 & IPv6 stacks.
+
+       * dbus/dbus-server-unix.c: Pass in an array of file descriptors
+       instead of a single one.
+
+       * dbus/dbus-transport-socket.h:
+       * dbus/dbus-transport-socket.c: Add support for 'family' in the
+       address string to specify ipv4 vs ipv6. Use a port string to
+       allow for service resolution.
+
+2007-07-24  Havoc Pennington  <hp@redhat.com>
+
+       * configure.in: add AM_PROG_CC_C_O to allow per-target CPPFLAGS
+
+       * bus/dispatch.c (bus_dispatch_test_conf): Fix up setting
+       TEST_LAUNCH_HELPER_CONFIG to include the full path, and enable
+       test shell_fail_service_auto_start when use_launcher==TRUE
+
+       * bus/activation-helper-bin.c (convert_error_to_exit_code): pass
+       through the INVALID_ARGS error so the test suite works
+
+       * bus/activation.c (handle_activation_exit_error): return
+       DBUS_ERROR_NO_MEMORY if we get BUS_SPAWN_EXIT_CODE_NO_MEMORY
+
+       * dbus/dbus-spawn.c (_dbus_babysitter_get_child_exit_status):
+       return only the exit code of the child, not the entire thingy from 
+       waitpid(), and make the return value indicate whether the child 
+       exited normally (with a status code)
+
+       * bus/bus.c (process_config_first_time_only): _dbus_strdup works
+       on NULL so no need to check
+       (process_config_every_time): move servicehelper init here, so we
+       reload it on HUP or config file change
+
+       * bus/Makefile.am (install-data-hook): remove comment because
+       Emacs make mode seems to be grumpy about it
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/Makefile.am:
+       * bus/test-system.c: (die), (check_memleaks), (test_pre_hook),
+       (test_post_hook), (main):
+       Add back the test-system.c file - not sure now this got ignored in the
+       diff. I blame git.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * configure.in:
+       Use ustar to generate the tarball; this fixes the make distcheck
+       problem when the data files do not fit in the archive:
+       tar: dbus-1.1.2/test/data/valid-service-files/org.freedesktop.DBus.
+       TestSuiteShellEchoServiceFail.service.in: file name is too
+       long (max 99); not dumped
+
+       We have to have the 'long' names as the service helper matches by
+       filename rather than by the name in the service file.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * configure.in:
+       * test/Makefile.am:
+       * test/data/invalid-service-files-system/org.freedesktop.DBus.TestS
+       uiteNoExec.service.in:
+       * test/data/invalid-service-files-system/org.freedesktop.DBus.TestS
+       uiteNoService.service.in:
+       * test/data/invalid-service-files-system/org.freedesktop.DBus.TestS
+       uiteNoUser.service.in:
+       * test/data/valid-config-files-system/debug-allow-all-fail.conf.in:
+       * test/data/valid-config-files-system/debug-allow-all-pass.conf.in:
+       * test/data/valid-config-files/debug-allow-all-sha1.conf.in:
+       * test/data/valid-config-files/debug-allow-all.conf.in:
+       * test/data/valid-service-files-system/org.freedesktop.DBus.TestSui
+       teEchoService.service.in:
+       * test/data/valid-service-files-system/org.freedesktop.DBus.TestSui
+       teSegfaultService.service.in:
+       * test/data/valid-service-files-system/org.freedesktop.DBus.TestSui
+       teShellEchoServiceFail.service.in:
+       * test/data/valid-service-files-system/org.freedesktop.DBus.TestSui
+       teShellEchoServiceSuccess.service.in:
+       * test/data/valid-service-files/debug-echo.service.in:
+       * test/data/valid-service-files/debug-segfault.service.in:
+       * test/data/valid-service-files/debug-shell-echo-fail.service.in:
+       * test/data/valid-service-files/debug-shell-echo-success.service.in:
+       * test/data/valid-service-files/org.freedesktop.DBus.TestSuiteEchoS
+       ervice.service.in:
+       * test/data/valid-service-files/org.freedesktop.DBus.TestSuiteSegfa
+       ultService.service.in:
+       * test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShell
+       EchoServiceFail.service.in:
+       * test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShell
+       EchoServiceSuccess.service.in:
+       Add the data files needed by the system activation unit checks.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/dispatch.c: (check_segfault_service_no_auto_start),
+       (check_launch_service_file_missing),
+       (check_launch_service_user_missing),
+       (check_launch_service_exec_missing),
+       (check_launch_service_service_missing), (bus_dispatch_test_conf),
+       (bus_dispatch_test_conf_fail), (bus_dispatch_test):
+       Add unit tests for system activation. Most are copied from the
+       session activation tests, but some didn't apply when using a laucher.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/activation.c: (bus_activation_activate_service):
+       If the bus uses a service-laucher, then use the setuid laucher.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * configure.in:
+       Add the needed library exports for the new laucher.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * configure.in:
+       Check for -Wl,--gc-sections so we can really reduce the size of the
+       setuid binary.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/activation.c: (handle_activation_exit_error),
+       (babysitter_watch_callback):
+       Map the child exit status integer to a proper dbus error.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/bus.c: (process_config_first_time_only),
+       (process_config_every_time), (bus_context_unref),
+       (bus_context_get_servicehelper):
+       * bus/bus.h:
+       Add the concept of a service-helper and allow it's value to be read.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/activation.c: (bus_activation_entry_unref),
+       (update_desktop_file_entry):
+       Add the concept of, and read the value of user from the desktop file.
+       The user string is not required unless we are using system activation.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/activation.c:
+       * bus/desktop-file.h:
+       Move the defines into the header file, as we use these in the lauch
+       helper as well as the desktop file parsing.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/.cvsignore:
+       Add the autogenerated binary files.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/Makefile.am:
+       * bus/test.h:
+       Add the build glue for the lauch helper, and also add the launch-helper
+       OOM checks into make check. I've probably broken the build, give me 2.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/test-launch-helper.c: (die), (check_memleaks),
+       (test_post_hook), (bus_activation_helper_oom_test), (main):
+       Add a test wrapper to allow OOM checks on the launch helper.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/activation-helper-bin.c: (convert_error_to_exit_code),
+       (main):
+       * bus/activation-helper.c: (desktop_file_for_name),
+       (clear_environment), (check_permissions), (check_service_name),
+       (get_parameters_for_service), (switch_user),
+       (exec_for_correct_user), (check_bus_name), (get_correct_parser),
+       (launch_bus_name), (check_dbus_user), (run_launch_helper):
+       * bus/activation-helper.h:
+       Add the initial launch-helper. This is split into a main section and a
+       binary loader that allows us to lauch the main section in another test
+       harness to do stuff like OOM testing. No build glue yet.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/Makefile.am:
+       * bus/config-parser.c: (bus_config_parser_unref),
+       (start_busconfig_child), (bus_config_parser_end_element),
+       (servicehelper_path), (bus_config_parser_content),
+       (bus_config_parser_finished),
+       (bus_config_parser_get_servicehelper),
+       (test_default_session_servicedirs),
+       (test_default_system_servicedirs), (bus_config_parser_test):
+       * bus/config-parser.h:
+       Make the config-parser code use the common config code.
+       Also add the session and systemdirs stuff, and make the config parser
+       aware of the servicehelper field.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/system.conf.in:
+       Add new servicehelper fields to the default system.conf file.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/config-parser-trivial.c: (service_dirs_find_dir),
+       (service_dirs_append_link_unique_or_free), (bus_config_parser_new),
+       (bus_config_parser_unref), (bus_config_parser_start_element),
+       (bus_config_parser_end_element), (bus_config_parser_content),
+       (bus_config_parser_finished), (bus_config_parser_get_user),
+       (bus_config_parser_get_type), (bus_config_parser_get_service_dirs),
+       (check_return_values), (do_load), (check_loader_oom_func),
+       (process_test_valid_subdir), (make_full_path), (check_file_valid),
+       (bus_config_parser_trivial_test):
+       * bus/config-parser-trivial.h:
+       Add a security sensitive stripped down config parser for the setuid
+       launcher. This file only reads what it needs, and doesn't try to do
+       anything remotely clever like including external files.
+       It is not intended to validate the config file; it is expected that
+       config-parser will do that before the setuid program tries to read it.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/config-parser-common.c:
+       (bus_config_parser_element_name_to_type),
+       (bus_config_parser_element_type_to_name):
+       * bus/config-parser-common.h:
+       We don't want to run the whole config parser with all it's deps in the
+       setuid program. We need to implement a stripped down config parser just
+       for the launcher, and to do so I need some common functions and
+       defines; add them here.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * dbus/dbus-sysdeps-unix.c:
+       (_dbus_get_standard_system_servicedirs):
+       * dbus/dbus-sysdeps-win.c:
+       Provide a way to get the standard system servicedirs, just like we do
+       for the session service dirs. These should be seporate, as there may
+       be a security issue starting up some session stuff as root.
+       The use-case for the same binary starting up per-system _and_
+       per-session is also not valid.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/dbus-daemon.1.in:
+       Add standard_system_servicedirs and servicehelper into the man file
+       and explain what each does.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * doc/busconfig.dtd:
+       Add servicehelper into the dtd, it will soon be a valid part of the
+       config file.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * dbus/dbus-spawn.c: (read_data),
+       (_dbus_babysitter_get_child_exit_status):
+       * dbus/dbus-spawn.h:
+       Add a function so we can get access to the exit status of the launch
+       helper.
+       By providing the return code and not the error we can leave the
+       'what does this mean?' to the bus launch code and not include it in the
+       dbus directory.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * bus/activation-exit-codes.h:
+       Add defines which specify the output codes of the launch helper.
+       We have to use exit codes as this is the only way we can return failure
+       type without going grotty things like redirecting possibly-nonsecure
+       stderr into the error.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * dbus/dbus-protocol.h:
+       Add new error names needed for the launch helper.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * dbus/dbus-sysdeps.c: (_dbus_clearenv):
+       * dbus/dbus-sysdeps.h:
+       Add a wrapper for clearenv.
+
+2007-07-24  Richard Hughes  <richard@hughsie.com>
+
+       * doc/system-activation.txt:
+       Add design document for the system activation parts. I'll shortly be
+       committing many patches that add system activation using a setuid
+       launcher into CVS, so expect things to be broken for a few hours.
+
+2007-07-19  Ralf Habacker  <ralf.habacker@freenet.de>
+
+       * cmake/modules/FindKDEWIN.cmake: fixed comment
+       * cmake/modules/FindKDEWIN32.cmake: removed obsolate cmake module
+
 2007-07-18  Havoc Pennington  <hp@redhat.com>
 
        * dbus/dbus-message.c (dbus_message_get_cached)
 2007-07-18  Havoc Pennington  <hp@redhat.com>
 
        * dbus/dbus-message.c (dbus_message_get_cached)
 2007-06-14  Havoc Pennington  <hp@redhat.com>
 
        * bus/dispatch.c (check_get_connection_unix_process_id): mop up
 2007-06-14  Havoc Pennington  <hp@redhat.com>
 
        * bus/dispatch.c (check_get_connection_unix_process_id): mop up
-       getpid() (noticed by Peter KKümmel) and adapt the test to 
+       getpid() (noticed by Peter Kümmel) and adapt the test to 
        expect a "pid unknown" error when running on Windows.
 
 2007-06-14  Havoc Pennington  <hp@redhat.com>
        expect a "pid unknown" error when running on Windows.
 
 2007-06-14  Havoc Pennington  <hp@redhat.com>
 2007-06-14  Simon McVittie  <simon.mcvittie@collabora.co.uk>
 
        * doc/dbus-specification.xml: say the protocol version is 1 instead of
 2007-06-14  Simon McVittie  <simon.mcvittie@collabora.co.uk>
 
        * doc/dbus-specification.xml: say the protocol version is 1 instead of
-       0 (patch from Kristoffer Lundén, fd.o#10033) and remove the FIXME
+       0 (patch from Kristoffer Lundén, fd.o#10033) and remove the FIXME
        about removing protocol version from messages (as per Havoc's comment
        on that bug)
 
        about removing protocol version from messages (as per Havoc's comment
        on that bug)
 
 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
 
        * bus/signal.c: Fix match_rule_equal errata
 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
 
        * bus/signal.c: Fix match_rule_equal errata
-       (CVE-2006-6107 - Patch from Kimmo HÃ\83¤mÃ\83¤lÃ\83¤inen 
+       (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
        <kimmo.hamalainen@nokia.com>)
 
 2006-11-19  Thiago Macieira  <thiago@kde.org>
        <kimmo.hamalainen@nokia.com>)
 
 2006-11-19  Thiago Macieira  <thiago@kde.org>