John (J5) Palmieri [Tue, 15 Jan 2008 19:43:19 +0000 (14:43 -0500)]
add OOM handling in various places
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)
John (J5) Palmieri [Tue, 15 Jan 2008 19:20:43 +0000 (14:20 -0500)]
rewrite selinux error handling to not abort due to a NULL read
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)
John (J5) Palmieri [Tue, 15 Jan 2008 18:53:54 +0000 (13:53 -0500)]
add OOM handling
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)
John (J5) Palmieri [Tue, 15 Jan 2008 18:46:50 +0000 (13:46 -0500)]
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>
* dbus/dbus-spawn.c (babysit, babysitter_iteration): add error
handling when polling (FDO Bug #12954)
John (J5) Palmieri [Tue, 15 Jan 2008 18:32:47 +0000 (13:32 -0500)]
remove dead code
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
John (J5) Palmieri [Tue, 15 Jan 2008 00:04:41 +0000 (19:04 -0500)]
plug a possible BusClientPolicy leak (FDO Bug #13242)
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)
John (J5) Palmieri [Tue, 15 Jan 2008 00:00:36 +0000 (19:00 -0500)]
add inotify support (FDO Bz#13268)
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)
John (J5) Palmieri [Mon, 14 Jan 2008 23:17:53 +0000 (18:17 -0500)]
watch for file creates in dnotify
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
John (J5) Palmieri [Mon, 14 Jan 2008 23:09:14 +0000 (18:09 -0500)]
return message loader buffer in case of OOM (FDO Bug#12666)
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)
John (J5) Palmieri [Mon, 14 Jan 2008 20:53:13 +0000 (15:53 -0500)]
add warning to output when libxml is selected
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
John (J5) Palmieri [Mon, 14 Jan 2008 20:07:48 +0000 (15:07 -0500)]
add _dbus_geteuid to fix EXTERNAL authentication in setuid applications
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
Havoc Pennington [Tue, 18 Dec 2007 20:20:17 +0000 (15:20 -0500)]
fix some curly braces that were on the wrong line
2007-12-18 Havoc Pennington <hp@redhat.com>
* dbus/dbus-connection.c (_dbus_connection_block_pending_call):
fix location of curly braces
Sjoerd Simons [Fri, 23 Nov 2007 10:31:05 +0000 (11:31 +0100)]
Allow a normal session bus to be reused by applications using autolaunching
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).
Havoc Pennington [Wed, 31 Oct 2007 17:58:28 +0000 (13:58 -0400)]
Fix a problem where a nul byte was wrongly introduced into UUIDs, due to _dbus_string_copy_to_buffer weird behavior.
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.
Havoc Pennington [Tue, 23 Oct 2007 18:48:52 +0000 (14:48 -0400)]
audit_init() was not declared in header, causing warnings; fix this and namespace it
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
Havoc Pennington [Fri, 19 Oct 2007 21:20:06 +0000 (17:20 -0400)]
add HAVE_SELINUX around call to audit_init() so things build without selinux
2007-10-19 Havoc Pennington <hp@redhat.com>
* bus/bus.c (bus_context_new): put audit_init() in HAVE_SELINUX
Havoc Pennington [Fri, 19 Oct 2007 19:05:27 +0000 (15:05 -0400)]
do not call audit_init() from bus/ directory from files in dbus/
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
Simon McVittie [Tue, 16 Oct 2007 09:13:15 +0000 (10:13 +0100)]
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>
Simon McVittie [Thu, 11 Oct 2007 16:29:40 +0000 (17:29 +0100)]
Amend ChangeLog - DBUS_ERROR_INIT is now used within libdbus as well as provided
Simon McVittie [Wed, 10 Oct 2007 10:41:57 +0000 (11:41 +0100)]
Use DBUS_ERROR_INIT instead of dbus_error_init wherever it's clearly equivalent
Simon McVittie [Thu, 11 Oct 2007 16:24:18 +0000 (17:24 +0100)]
Merge branch 'inline'
Simon McVittie [Thu, 11 Oct 2007 16:24:16 +0000 (17:24 +0100)]
Merge branch 'atomic'
Conflicts:
ChangeLog
Simon McVittie [Thu, 11 Oct 2007 09:56:12 +0000 (10:56 +0100)]
Add J5's recent changes to ChangeLog
Simon McVittie [Thu, 11 Oct 2007 09:38:01 +0000 (10:38 +0100)]
Update ChangeLog
Simon McVittie [Wed, 10 Oct 2007 10:39:22 +0000 (11:39 +0100)]
Rename DBUS_ERROR_INITIALIZER to DBUS_ERROR_INIT per Havoc's review
Simon McVittie [Tue, 9 Oct 2007 16:34:09 +0000 (17:34 +0100)]
Add DBUS_ERROR_INITIALIZER macro
Simon McVittie [Thu, 11 Oct 2007 09:27:28 +0000 (10:27 +0100)]
Enable Autoconf's AC_C_INLINE to avoid compilation failure with gcc -ansi.
If inline isn't recognised (e.g. on a strict C90 compiler, like gcc -ansi) this
defines it to __inline__, __inline or nothing, whichever works. This is safe,
because we never use inline except in combination with static.
Simon McVittie [Thu, 11 Oct 2007 09:20:09 +0000 (10:20 +0100)]
Update ChangeLog
Simon McVittie [Thu, 11 Oct 2007 09:18:05 +0000 (10:18 +0100)]
.gitignore: ignore vi swapfiles
Simon McVittie [Wed, 10 Oct 2007 12:37:00 +0000 (13:37 +0100)]
dbus-launch: convert C++-style comment to C-style, add {} for clarity
Simon McVittie [Wed, 10 Oct 2007 12:34:56 +0000 (13:34 +0100)]
dbus/dbus-server-socket.c: remove unused variable if disabling assertions
Simon McVittie [Wed, 10 Oct 2007 12:34:15 +0000 (13:34 +0100)]
dbus/dbus-marshal-validate.c: get rid of empty statements
Simon McVittie [Thu, 11 Oct 2007 09:11:21 +0000 (10:11 +0100)]
As per Havoc's review, rename DBUS_GNUC_EXTENSION to _DBUS_GNUC_EXTENSION.
Also update ChangeLog.
Simon McVittie [Wed, 10 Oct 2007 12:37:48 +0000 (13:37 +0100)]
dbus/dbus-arch-deps.h.in: also use DBUS_GNUC_EXTENSION for DBUS_INT64_CONSTANT and UINT64 equivalent
Simon McVittie [Wed, 10 Oct 2007 12:04:08 +0000 (13:04 +0100)]
Use DBUS_GNUC_EXTENSION to avoid -ansi -pedantic warnings about use of long long. (#717)
Simon McVittie [Wed, 10 Oct 2007 12:02:57 +0000 (13:02 +0100)]
Add macro DBUS_GNUC_EXTENSION (the same as GLib's G_GNUC_EXTENSION)
Part of a fix for bug 717.
Simon McVittie [Thu, 11 Oct 2007 08:57:48 +0000 (09:57 +0100)]
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).
Simon McVittie [Wed, 10 Oct 2007 16:39:41 +0000 (17:39 +0100)]
Merge branch 'master' of ssh://git.freedesktop.org/git/dbus/dbus
Simon McVittie [Wed, 10 Oct 2007 16:39:12 +0000 (17:39 +0100)]
Update ChangeLog
Simon McVittie [Wed, 10 Oct 2007 10:59:14 +0000 (11:59 +0100)]
Bring .gitignore files up to date; add *.o, *~ etc. to top-level .gitignore
CVS ignores these automatically, so they weren't in the .cvsignore when Ryan
converted the repository.
Simon McVittie [Wed, 10 Oct 2007 10:41:08 +0000 (11:41 +0100)]
Fix indentation in _dbus_object_tree_register declaration as per Havoc's review
Simon McVittie [Wed, 10 Oct 2007 10:40:48 +0000 (11:40 +0100)]
_dbus_object_tree_register: don't duplicate check for NULL and use new DBUS_ERROR_OBJECT_PATH_IN_USE error, both as per Havoc's review
Simon McVittie [Wed, 10 Oct 2007 10:38:34 +0000 (11:38 +0100)]
Add error o.fd.D.Error.ObjectPathInUse (DBUS_ERROR_OBJECT_PATH_IN_USE)
Simon McVittie [Tue, 9 Oct 2007 16:19:36 +0000 (17:19 +0100)]
Add dbus_connection_try_register_object_path and dbus_connection_try_register_fallback, to make object path registration less painful for bindings
John (J5) Palmieri [Tue, 9 Oct 2007 19:50:08 +0000 (15:50 -0400)]
Fix env exports for better portability (#9280)
John (J5) Palmieri [Tue, 9 Oct 2007 19:27:53 +0000 (15:27 -0400)]
Document syntax for container types in dbus-send man file (#9553)
* Patch from Jack Spaar <jspaar at users.sourceforge.net>
Simon McVittie [Tue, 9 Oct 2007 13:23:28 +0000 (14:23 +0100)]
Improve description of allowed variant signatures (#10185)
Patch based on one from Kristoffer Lundén, amended as per Havoc's comment.
Simon McVittie [Tue, 9 Oct 2007 13:12:31 +0000 (14:12 +0100)]
doc/dbus-specification.xml: Clarify description of DBUS_COOKIE_SHA1 (#10184).
Patch from Kristoffer Lundén.
Simon McVittie [Tue, 9 Oct 2007 13:06:54 +0000 (14:06 +0100)]
Merge branch 'master' of ssh://git.freedesktop.org/git/dbus/dbus
Simon McVittie [Tue, 9 Oct 2007 13:06:35 +0000 (14:06 +0100)]
doc/dbus-specification.xml: Specifically forbid empty structs (#7969)
John (J5) Palmieri [Wed, 3 Oct 2007 21:54:09 +0000 (17:54 -0400)]
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
* https://bugs.freedesktop.org/show_bug.cgi?id=11678
John (J5) Palmieri [Wed, 3 Oct 2007 21:29:45 +0000 (17:29 -0400)]
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.
John (J5) Palmieri [Wed, 3 Oct 2007 21:08:44 +0000 (17:08 -0400)]
fd.o bug #11872 improve linker test for --gc-sections
* patch by Tim Mooney <enchanter at users.sourceforge.net>
John (J5) Palmieri [Wed, 3 Oct 2007 21:02:23 +0000 (17:02 -0400)]
fd.o bug #11872 fix clearenv for systems that do not have it
* patch from Brian Cameron <brian.cameron at sun.com>
John (J5) Palmieri [Wed, 3 Oct 2007 20:43:22 +0000 (16:43 -0400)]
fd.o bug #12547 remove superfluous if
* also convert tabs to spaces
John (J5) Palmieri [Wed, 3 Oct 2007 19:21:57 +0000 (15:21 -0400)]
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
* propper LD_FLAGS are set for each also
Ryan Lortie [Thu, 20 Sep 2007 17:04:38 +0000 (13:04 -0400)]
Add argument path matching support. Bug #11066.
2007-09-20 Ryan Lortie <desrt@desrt.ca>
* 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.
Ryan Lortie [Thu, 20 Sep 2007 04:13:35 +0000 (00:13 -0400)]
Add support for compacting DBusStrings to release wasted memory.
2007-09-19 Ryan Lortie <desrt@desrt.ca>
* 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.
Ryan Lortie [Thu, 13 Sep 2007 16:42:32 +0000 (12:42 -0400)]
HACKING: add more explicit git branch/tag instructions
Ryan Lortie [Thu, 13 Sep 2007 15:13:40 +0000 (11:13 -0400)]
migrate from cvs to git (cvs2svn -> git-svnimport).
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
Havoc Pennington [Fri, 17 Aug 2007 18:51:41 +0000 (18:51 +0000)]
2007-08-17 William Jon McCann <mccann@jhu.edu>
* update-dbus-docs.sh: upload DTD to server
Havoc Pennington [Fri, 17 Aug 2007 16:43:57 +0000 (16:43 +0000)]
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.
Havoc Pennington [Fri, 3 Aug 2007 19:05:29 +0000 (19:05 +0000)]
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.
Havoc Pennington [Mon, 30 Jul 2007 16:16:47 +0000 (16:16 +0000)]
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>
Havoc Pennington [Fri, 27 Jul 2007 21:01:22 +0000 (21:01 +0000)]
2007-07-27 Havoc Pennington <hp@redhat.com>
* configure.in: post-release version bump
Havoc Pennington [Fri, 27 Jul 2007 20:59:42 +0000 (20:59 +0000)]
2007-07-27 Havoc Pennington <hp@redhat.com>
* release 1.1.2
Havoc Pennington [Thu, 26 Jul 2007 23:01:14 +0000 (23:01 +0000)]
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.
Havoc Pennington [Thu, 26 Jul 2007 22:32:09 +0000 (22:32 +0000)]
fix whitespace
Daniel P. Berrange [Wed, 25 Jul 2007 02:46:52 +0000 (02:46 +0000)]
Switch over to using getaddrinfo for TCP clients & servers to enable IPv6
Havoc Pennington [Tue, 24 Jul 2007 22:11:00 +0000 (22:11 +0000)]
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
Richard Hughes [Tue, 24 Jul 2007 13:03:31 +0000 (13:03 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 12:55:32 +0000 (12:55 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 12:48:45 +0000 (12:48 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 12:39:30 +0000 (12:39 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 12:36:41 +0000 (12:36 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 12:33:35 +0000 (12:33 +0000)]
2007-07-24 Richard Hughes <richard@hughsie.com>
* configure.in:
Add the needed library exports for the new laucher.
Richard Hughes [Tue, 24 Jul 2007 12:31:01 +0000 (12:31 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 12:22:43 +0000 (12:22 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 12:19:59 +0000 (12:19 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 12:17:39 +0000 (12:17 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 12:14:51 +0000 (12:14 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 12:12:10 +0000 (12:12 +0000)]
2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/.cvsignore:
Add the autogenerated binary files.
Richard Hughes [Tue, 24 Jul 2007 12:10:58 +0000 (12:10 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 12:03:04 +0000 (12:03 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 12:01:32 +0000 (12:01 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 11:58:08 +0000 (11:58 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 11:53:35 +0000 (11:53 +0000)]
2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/system.conf.in:
Add new servicehelper fields to the default system.conf file.
Richard Hughes [Tue, 24 Jul 2007 11:50:59 +0000 (11:50 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 11:47:31 +0000 (11:47 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 11:44:35 +0000 (11:44 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 11:41:19 +0000 (11:41 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 11:38:47 +0000 (11:38 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 11:37:20 +0000 (11:37 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 11:34:40 +0000 (11:34 +0000)]
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.
Richard Hughes [Tue, 24 Jul 2007 11:27:09 +0000 (11:27 +0000)]
2007-07-24 Richard Hughes <richard@hughsie.com>
* dbus/dbus-protocol.h:
Add new error names needed for the launch helper.
Richard Hughes [Tue, 24 Jul 2007 11:24:52 +0000 (11:24 +0000)]
2007-07-24 Richard Hughes <richard@hughsie.com>
* dbus/dbus-sysdeps.c: (_dbus_clearenv):
* dbus/dbus-sysdeps.h:
Add a wrapper for clearenv.
Richard Hughes [Tue, 24 Jul 2007 11:23:46 +0000 (11:23 +0000)]
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.
Ralf Habacker [Thu, 19 Jul 2007 20:16:09 +0000 (20:16 +0000)]
* cmake/modules/FindKDEWIN.cmake: fixed comment
* cmake/modules/FindKDEWIN32.cmake: removed obsolate cmake module
Havoc Pennington [Wed, 18 Jul 2007 21:43:23 +0000 (21:43 +0000)]
2007-07-18 Havoc Pennington <hp@redhat.com>
* dbus/dbus-message.c (dbus_message_get_cached)
(dbus_message_cache_or_finalize): don't mess with message from
message cache outside of the cache lock. Bug #9164 from Jonathan
Matthew.
Havoc Pennington [Sat, 14 Jul 2007 02:44:01 +0000 (02:44 +0000)]
2007-07-13 Havoc Pennington <hp@redhat.com>
* Add indent-tabs-mode: nil to all file headers.