Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

34 lines (29 sloc) 0.773 kb
#include <unistd.h>
#include "env.h"
#include "scan.h"
#include "prot.h"
#include "strerr.h"
void droproot(const char *fatal)
{
char *x;
unsigned long id;
x = env_get("ROOT");
if (!x)
strerr_die2x(111,fatal,"$ROOT not set");
if (chdir(x) == -1)
strerr_die4sys(111,fatal,"unable to chdir to ",x,": ");
if (chroot(".") == -1)
strerr_die4sys(111,fatal,"unable to chroot to ",x,": ");
x = env_get("GID");
if (!x)
strerr_die2x(111,fatal,"$GID not set");
scan_ulong(x,&id);
if (prot_gid((int) id) == -1)
strerr_die2sys(111,fatal,"unable to setgid: ");
x = env_get("UID");
if (!x)
strerr_die2x(111,fatal,"$UID not set");
scan_ulong(x,&id);
if (prot_uid((int) id) == -1)
strerr_die2sys(111,fatal,"unable to setuid: ");
}
Jump to Line
Something went wrong with that request. Please try again.