From f00eabd2cd798cd87185218893d307c5412a13cd Mon Sep 17 00:00:00 2001 From: Ralf Habacker Date: Tue, 10 Feb 2015 15:41:52 +0100 Subject: [PATCH 1/3] Add test for windows sid. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=54445 --- dbus/dbus-sysdeps-win.c | 2 +- dbus/dbus-sysdeps-win.h | 1 + test/dbus-daemon.c | 22 ++++++++++++++++++++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/dbus/dbus-sysdeps-win.c b/dbus/dbus-sysdeps-win.c index dbd9043..526db8e 100644 --- a/dbus/dbus-sysdeps-win.c +++ b/dbus/dbus-sysdeps-win.c @@ -984,7 +984,7 @@ static BOOL is_winxp_sp3_or_lower() * @param process_id the process id for which the sid should be returned * @returns process sid */ -static dbus_bool_t +dbus_bool_t _dbus_getsid(char **sid, dbus_pid_t process_id) { HANDLE process_token = INVALID_HANDLE_VALUE; diff --git a/dbus/dbus-sysdeps-win.h b/dbus/dbus-sysdeps-win.h index 02e7a83..3efdf72 100644 --- a/dbus/dbus-sysdeps-win.h +++ b/dbus/dbus-sysdeps-win.h @@ -88,6 +88,7 @@ dbus_bool_t _dbus_get_install_root(char *prefix, int len); void _dbus_threads_windows_init_global (void); void _dbus_threads_windows_ensure_ctor_linked (void); +dbus_bool_t _dbus_getsid(char **sid, dbus_pid_t process_id); #endif /** @} end of sysdeps-win.h */ diff --git a/test/dbus-daemon.c b/test/dbus-daemon.c index 6b0e9b8..201d0f2 100644 --- a/test/dbus-daemon.c +++ b/test/dbus-daemon.c @@ -371,6 +371,26 @@ test_creds (Fixture *f, g_assert_not_reached (); #endif } + else if (g_strcmp0 (name, "WindowsSID") == 0) + { +#ifdef G_OS_WIN32 + gchar *sid; + guint32 result; + char *self_sid; + + g_assert (!(seen & SEEN_WINDOWS_SID)); + g_assert_cmpuint (dbus_message_iter_get_arg_type (&var_iter), ==, + DBUS_TYPE_STRING); + dbus_message_iter_get_basic (&var_iter, &sid); + g_message ("%s of this process is %s", name, sid); + if (_dbus_getsid (&self_sid, 0)) + result = strcmp (self_sid, sid); + g_assert_cmpuint (result, ==, 0); + seen |= SEEN_WINDOWS_SID; +#else + g_assert_not_reached (); +#endif + } else if (g_strcmp0 (name, "ProcessID") == 0) { guint32 u32; @@ -402,9 +422,7 @@ test_creds (Fixture *f, #endif #ifdef G_OS_WIN32 - /* FIXME: when implemented: g_assert (seen & SEEN_WINDOWS_SID); - */ #endif } -- 1.8.4.5