From: Enrico Scholz Date: Fri, 20 Feb 2004 17:01:54 +0000 (+0000) Subject: use more extensive errormessages X-Git-Tag: VERSION_0_10~596 X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e888c86c587f39ee2f7738d94185308beae4c7f1;p=util-vserver.git use more extensive errormessages use git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@967 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/util-vserver/src/fakerunlevel.c b/util-vserver/src/fakerunlevel.c index 322d90a..0ca0201 100644 --- a/util-vserver/src/fakerunlevel.c +++ b/util-vserver/src/fakerunlevel.c @@ -38,6 +38,12 @@ #include #include +#define ENSC_WRAPPERS_PREFIX "fakerunlevel: " +#define ENSC_WRAPPERS_UNISTD 1 +#define ENSC_WRAPPERS_FCNTL 1 +#include + +int wrapper_exit_code = 1; static void showHelp(int fd, int exit_code) @@ -79,34 +85,24 @@ int main (int argc, char *argv[]) if (runlevel<0 || runlevel>6) showHelp(2,1); - if (chroot(".")==-1 || - chdir("/")==-1) { - perror("chroot()/chdir()"); - return EXIT_FAILURE; - } + Echroot("."); + Echdir("/"); // Real NSS is too expensive/insecure in this state; therefore, use the // value detected at ./configure stage or overridden by $UTMP_GID // env-variable gid = gid_str ? atoi(gid_str) : UTMP_GID; - if (setgroups(1,&gid)==-1 || - setgid(gid)==-1 || - getgid()!=gid) { - perror("setgid()/getgid()"); - return EXIT_FAILURE; - } + Esetgroups(1, &gid); + Esetgid(gid); - umask(002); - fd = open(fname, O_WRONLY|O_CREAT|O_APPEND, 0664); - if (fd==-1) { - perror("open()"); + if (getgid()!=gid) { + WRITE_MSG(2, "fakerunlevel: Failed to set group\n"); return EXIT_FAILURE; } - if (close(fd)==-1) { - perror("close()"); - return EXIT_FAILURE; - } + umask(002); + fd = Eopen(fname, O_WRONLY|O_CREAT|O_APPEND, 0664); + Eclose(fd); utmpname (fname); setutent();