From 79d3004e26f490ef37ae0298495ea66f322ce374 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Tue, 24 Jul 2007 22:11:00 +0000 Subject: 2007-07-24 Havoc Pennington * 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 --- bus/config-parser.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'bus/config-parser.c') diff --git a/bus/config-parser.c b/bus/config-parser.c index 43e516e3..d6df4abb 100644 --- a/bus/config-parser.c +++ b/bus/config-parser.c @@ -2073,15 +2073,8 @@ servicehelper_path (BusConfigParser *parser, { const char *filename_str; char *servicehelper; - filename_str = _dbus_string_get_const_data (filename); - /* check if helper exists... */ - if (!_dbus_file_exists (filename_str)) - { - dbus_set_error (error, DBUS_ERROR_FILE_NOT_FOUND, - "setuid helper '%s'not found", filename_str); - return FALSE; - } + filename_str = _dbus_string_get_const_data (filename); /* copy to avoid overwriting with NULL on OOM */ servicehelper = _dbus_strdup (filename_str); @@ -2097,6 +2090,13 @@ servicehelper_path (BusConfigParser *parser, dbus_free (parser->servicehelper); parser->servicehelper = servicehelper; + /* We don't check whether the helper exists; instead we + * would just fail to ever activate anything if it doesn't. + * This allows an admin to fix the problem if it doesn't exist. + * It also allows the parser test suite to successfully parse + * test cases without installing the helper. ;-) + */ + return TRUE; } -- cgit