From 99bd5adf995ee0f83bdda92384137ae810c4c92b Mon Sep 17 00:00:00 2001 From: Glenn L McGrath Date: Wed, 3 Sep 2003 12:18:42 +0000 Subject: more crond+crontab integrating with loginutil libbb functions and deleted patch from Thomas Gleixner to init. Viodz last_patch_108 --- libbb/change_identity.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'libbb/change_identity.c') diff --git a/libbb/change_identity.c b/libbb/change_identity.c index c2b73eeb8..adebad8ed 100644 --- a/libbb/change_identity.c +++ b/libbb/change_identity.c @@ -40,15 +40,23 @@ /* Become the user and group(s) specified by PW. */ -void change_identity ( const struct passwd *pw ) +const char *change_identity_e2str ( const struct passwd *pw ) { if ( initgroups ( pw-> pw_name, pw-> pw_gid ) == -1 ) - bb_perror_msg_and_die ( "cannot set groups" ); + return "cannot set groups"; endgrent ( ); if ( setgid ( pw-> pw_gid )) - bb_perror_msg_and_die ( "cannot set group id" ); + return "cannot set group id"; if ( setuid ( pw->pw_uid )) - bb_perror_msg_and_die ( "cannot set user id" ); + return "cannot set user id"; + return NULL; } +void change_identity ( const struct passwd *pw ) +{ + const char *err_msg = change_identity_e2str(pw); + + if(err_msg) + bb_perror_msg_and_die ( "%s", err_msg ); +} -- cgit v1.2.3