masqmail-0.2

diff src/permissions.c @ 10:26e34ae9a3e3

changed indention and line wrapping to a more consistent style
author meillo@marmaro.de
date Mon, 27 Oct 2008 16:23:10 +0100
parents 08114f7dcc23
children f671821d8222
line diff
     1.1 --- a/src/permissions.c	Mon Oct 27 16:21:27 2008 +0100
     1.2 +++ b/src/permissions.c	Mon Oct 27 16:23:10 2008 +0100
     1.3 @@ -21,58 +21,60 @@
     1.4  #include <grp.h>
     1.5  
     1.6  /* is there really no function in libc for this? */
     1.7 -gboolean is_ingroup(uid_t uid, gid_t gid)
     1.8 +gboolean
     1.9 +is_ingroup(uid_t uid, gid_t gid)
    1.10  {
    1.11 -  struct group *grent = getgrgid(gid);
    1.12 +	struct group *grent = getgrgid(gid);
    1.13  
    1.14 -  if(grent){
    1.15 -    struct passwd *pwent = getpwuid(uid);
    1.16 -    if(pwent){
    1.17 -      char *entry;
    1.18 -      int i = 0;
    1.19 -      while((entry = grent->gr_mem[i++])){
    1.20 -	if(strcmp(pwent->pw_name, entry) == 0)
    1.21 -	  return TRUE;
    1.22 -      }
    1.23 -    }
    1.24 -  }
    1.25 -  return FALSE;
    1.26 +	if (grent) {
    1.27 +		struct passwd *pwent = getpwuid(uid);
    1.28 +		if (pwent) {
    1.29 +			char *entry;
    1.30 +			int i = 0;
    1.31 +			while ((entry = grent->gr_mem[i++])) {
    1.32 +				if (strcmp(pwent->pw_name, entry) == 0)
    1.33 +					return TRUE;
    1.34 +			}
    1.35 +		}
    1.36 +	}
    1.37 +	return FALSE;
    1.38  }
    1.39  
    1.40 -gboolean is_privileged_user(uid_t uid)
    1.41 +gboolean
    1.42 +is_privileged_user(uid_t uid)
    1.43  {
    1.44 -  return (uid == 0) || (uid == conf.mail_uid) || (is_ingroup(uid, conf.mail_gid));
    1.45 +	return (uid == 0) || (uid == conf.mail_uid) || (is_ingroup(uid, conf.mail_gid));
    1.46  }
    1.47  
    1.48 -void set_euidgid(gint uid, gint gid, uid_t *old_uid, gid_t *old_gid)
    1.49 +void
    1.50 +set_euidgid(gint uid, gint gid, uid_t * old_uid, gid_t * old_gid)
    1.51  {
    1.52 -  if(old_uid) *old_uid = geteuid();
    1.53 -  if(old_gid) *old_gid = getegid();
    1.54 +	if (old_uid)
    1.55 +		*old_uid = geteuid();
    1.56 +	if (old_gid)
    1.57 +		*old_gid = getegid();
    1.58  
    1.59 -  seteuid(0);
    1.60 +	seteuid(0);
    1.61  
    1.62 -  if(setegid(gid) != 0){
    1.63 -    logwrite(LOG_ALERT, "could not change gid to %d: %s\n",
    1.64 -	     gid, strerror(errno));
    1.65 -    exit(EXIT_FAILURE);
    1.66 -  }
    1.67 -  if(seteuid(uid) != 0){
    1.68 -    logwrite(LOG_ALERT, "could not change uid to %d: %s\n",
    1.69 -	     uid, strerror(errno));
    1.70 -    exit(EXIT_FAILURE);
    1.71 -  }
    1.72 +	if (setegid(gid) != 0) {
    1.73 +		logwrite(LOG_ALERT, "could not change gid to %d: %s\n", gid, strerror(errno));
    1.74 +		exit(EXIT_FAILURE);
    1.75 +	}
    1.76 +	if (seteuid(uid) != 0) {
    1.77 +		logwrite(LOG_ALERT, "could not change uid to %d: %s\n", uid, strerror(errno));
    1.78 +		exit(EXIT_FAILURE);
    1.79 +	}
    1.80  }
    1.81  
    1.82 -void set_identity(uid_t old_uid, gchar *task_name)
    1.83 +void
    1.84 +set_identity(uid_t old_uid, gchar * task_name)
    1.85  {
    1.86 -  if(!conf.run_as_user){
    1.87 -    if(!is_privileged_user(old_uid)){
    1.88 -      fprintf(stderr,
    1.89 -	      "must be root, %s or in group %s for %s.\n",
    1.90 -	      DEF_MAIL_USER, DEF_MAIL_GROUP, task_name);
    1.91 -      exit(EXIT_FAILURE);
    1.92 -    }
    1.93 +	if (!conf.run_as_user) {
    1.94 +		if (!is_privileged_user(old_uid)) {
    1.95 +			fprintf(stderr, "must be root, %s or in group %s for %s.\n", DEF_MAIL_USER, DEF_MAIL_GROUP, task_name);
    1.96 +			exit(EXIT_FAILURE);
    1.97 +		}
    1.98  
    1.99 -    set_euidgid(conf.mail_uid, conf.mail_gid, NULL, NULL);
   1.100 -  }
   1.101 +		set_euidgid(conf.mail_uid, conf.mail_gid, NULL, NULL);
   1.102 +	}
   1.103  }