=== modified file 'plugins.d/mandos-client.c' --- plugins.d/mandos-client.c 2012-06-07 21:00:57 +0000 +++ plugins.d/mandos-client.c 2012-06-09 23:41:07 +0000 @@ -1393,44 +1393,41 @@ } /* Set effective uid to 0, return errno */ -int raise_privileges(void){ - int old_errno = errno; - int ret_errno = 0; - errno = 0; +error_t raise_privileges(void){ + error_t old_errno = errno; + error_t ret_errno = 0; if(seteuid(0) == -1){ + ret_errno = errno; perror_plus("seteuid"); } - ret_errno = errno; errno = old_errno; return ret_errno; } /* Set effective and real user ID to 0. Return errno. */ -int raise_privileges_permanently(void){ - int old_errno = errno; - int ret_errno = raise_privileges(); +error_t raise_privileges_permanently(void){ + error_t old_errno = errno; + error_t ret_errno = raise_privileges(); if(ret_errno != 0){ errno = old_errno; return ret_errno; } - errno = 0; if(setuid(0) == -1){ + ret_errno = errno; perror_plus("seteuid"); } - ret_errno = errno; errno = old_errno; return ret_errno; } /* Set effective user ID to unprivileged saved user ID */ -int lower_privileges(void){ - int old_errno = errno; - int ret_errno = 0; - errno = 0; +error_t lower_privileges(void){ + error_t old_errno = errno; + error_t ret_errno = 0; if(seteuid(uid) == -1){ + ret_errno = errno; perror_plus("seteuid"); } - ret_errno = errno; errno = old_errno; return ret_errno; } @@ -1561,7 +1558,8 @@ return true; } -int bring_up_interface(const char * const interface, const float delay){ +int bring_up_interface(const char *const interface, + const float delay){ int sd = -1; int old_errno = errno; int ret_errno = 0;