#include "prot.h" #include #include #include //#include "hasshsgr.h" /** @file prot.c @author djb @ref qmail @brief setting up uid an gid for OS (short group was for ancient solaris) */ /* XXX: there are more portability problems here waiting to leap out at me */ int prot_gid(int gid) { //#ifdef HASSHORTSETGROUPS // short x[2]; // x[0] = gid; x[1] = 73; /* catch errors */ // if (setgroups(1,x) == -1) return -1; //#else if (setgroups(1, (gid_t *)&gid) == -1) return -1; //#endif return setgid(gid); /* _should_ be redundant, but on some systems it isn't */ } int prot_uid(int uid) { return setuid(uid); }