diff options
author | John (J5) Palmieri <johnp@redhat.com> | 2008-01-14 15:07:48 -0500 |
---|---|---|
committer | John (J5) Palmieri <johnp@redhat.com> | 2008-01-14 15:07:48 -0500 |
commit | ede4e4514698612e226763ea8b6ae8ce13f2173d (patch) | |
tree | d0764decc001fd10699b1c50feac8735491aa094 /dbus/dbus-sysdeps-unix.c | |
parent | 047ec880e9e228183237c661ec2e45a949785cb9 (diff) |
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
Diffstat (limited to 'dbus/dbus-sysdeps-unix.c')
-rw-r--r-- | dbus/dbus-sysdeps-unix.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c index 2ce7427b..c4866bbb 100644 --- a/dbus/dbus-sysdeps-unix.c +++ b/dbus/dbus-sysdeps-unix.c @@ -1643,7 +1643,7 @@ _dbus_credentials_add_from_current_process (DBusCredentials *credentials) if (!_dbus_credentials_add_unix_pid(credentials, _dbus_getpid())) return FALSE; - if (!_dbus_credentials_add_unix_uid(credentials, _dbus_getuid())) + if (!_dbus_credentials_add_unix_uid(credentials, _dbus_geteuid())) return FALSE; return TRUE; @@ -1664,7 +1664,7 @@ dbus_bool_t _dbus_append_user_from_current_process (DBusString *str) { return _dbus_string_append_uint (str, - _dbus_getuid ()); + _dbus_geteuid ()); } /** @@ -1686,6 +1686,15 @@ _dbus_getuid (void) return getuid (); } +/** Gets our effective UID + * @returns process effective UID + */ +dbus_uid_t +_dbus_geteuid (void) +{ + return geteuid (); +} + /** * The only reason this is separate from _dbus_getpid() is to allow it * on Windows for logging but not for other purposes. |