1. 20 Sep, 2007 1 commit
    • Allison Lortie's avatar
      Add support for compacting DBusStrings to release wasted memory. · 8c6b0ab3
      Allison Lortie authored
      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.
      8c6b0ab3
  2. 13 Sep, 2007 2 commits
  3. 17 Aug, 2007 2 commits
    • Havoc Pennington's avatar
      2007-08-17 William Jon McCann <mccann@jhu.edu> · d4e511a7
      Havoc Pennington authored
      	* update-dbus-docs.sh: upload DTD to server
      d4e511a7
    • Havoc Pennington's avatar
      2007-08-17 Havoc Pennington <hp@redhat.com> · 163555c7
      Havoc Pennington authored
      	* 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.
      163555c7
  4. 03 Aug, 2007 1 commit
    • Havoc Pennington's avatar
      2007-08-03 Havoc Pennington <hp@redhat.com> · d9f24388
      Havoc Pennington authored
      	* 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.
      d9f24388
  5. 30 Jul, 2007 1 commit
    • Havoc Pennington's avatar
      2007-07-30 Havoc Pennington <hp@redhat.com> · ae4a1586
      Havoc Pennington authored
      	* 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>
      ae4a1586
  6. 27 Jul, 2007 2 commits
  7. 26 Jul, 2007 2 commits
    • Havoc Pennington's avatar
      2007-07-26 Havoc Pennington <hp@redhat.com> · bdbab121
      Havoc Pennington authored
      	* 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.
      bdbab121
    • Havoc Pennington's avatar
      fix whitespace · ba38a9b1
      Havoc Pennington authored
      ba38a9b1
  8. 25 Jul, 2007 1 commit
  9. 24 Jul, 2007 28 commits
    • Havoc Pennington's avatar
      2007-07-24 Havoc Pennington <hp@redhat.com> · 79d3004e
      Havoc Pennington authored
      	* 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
      79d3004e
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 0b5478e4
      Richard Hughes authored
      * 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.
      0b5478e4
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · a2788341
      Richard Hughes authored
      * 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.
      a2788341
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 5cfa0506
      Richard Hughes authored
      * 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.
      5cfa0506
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · c9a0a937
      Richard Hughes authored
      * 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.
      c9a0a937
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 60e764bc
      Richard Hughes authored
      * bus/activation.c: (bus_activation_activate_service):
      If the bus uses a service-laucher, then use the setuid laucher.
      60e764bc
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 5d4eb628
      Richard Hughes authored
      * configure.in:
      Add the needed library exports for the new laucher.
      5d4eb628
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 13c56943
      Richard Hughes authored
      * configure.in:
      Check for -Wl,--gc-sections so we can really reduce the size of the
      setuid binary.
      13c56943
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · ea3bdfba
      Richard Hughes authored
      * bus/activation.c: (handle_activation_exit_error),
      (babysitter_watch_callback):
      Map the child exit status integer to a proper dbus error.
      ea3bdfba
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 6ceffb59
      Richard Hughes authored
      * 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.
      6ceffb59
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 153a2aed
      Richard Hughes authored
      * 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.
      153a2aed
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 74e1b986
      Richard Hughes authored
      * 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.
      74e1b986
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 0a63547d
      Richard Hughes authored
      * bus/.cvsignore:
      Add the autogenerated binary files.
      0a63547d
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 6dd45468
      Richard Hughes authored
      * 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.
      6dd45468
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 5a186599
      Richard Hughes authored
      * 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.
      5a186599
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · f4082146
      Richard Hughes authored
      * 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.
      f4082146
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 0cb8dd64
      Richard Hughes authored
      * 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.
      0cb8dd64
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · d6fddc64
      Richard Hughes authored
      * bus/system.conf.in:
      Add new servicehelper fields to the default system.conf file.
      d6fddc64
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 21dfdb63
      Richard Hughes authored
      * 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.
      21dfdb63
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · dd8f96b8
      Richard Hughes authored
      * 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.
      dd8f96b8
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 227c6722
      Richard Hughes authored
      * 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.
      227c6722
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 837f60ae
      Richard Hughes authored
      * bus/dbus-daemon.1.in:
      Add standard_system_servicedirs and servicehelper into the man file
      and explain what each does.
      837f60ae
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · e69af3af
      Richard Hughes authored
      * doc/busconfig.dtd:
      Add servicehelper into the dtd, it will soon be a valid part of the
      config file.
      e69af3af
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · ab25c536
      Richard Hughes authored
      * 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.
      ab25c536
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · ee10721f
      Richard Hughes authored
      * 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.
      ee10721f
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 7d11c1da
      Richard Hughes authored
      * dbus/dbus-protocol.h:
      Add new error names needed for the launch helper.
      7d11c1da
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · 509474c3
      Richard Hughes authored
      * dbus/dbus-sysdeps.c: (_dbus_clearenv):
      * dbus/dbus-sysdeps.h:
      Add a wrapper for clearenv.
      509474c3
    • Richard Hughes's avatar
      2007-07-24 Richard Hughes <richard@hughsie.com> · fe052ddb
      Richard Hughes authored
      * 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.
      fe052ddb