/* swrap.c by Davide Libenzi 12/03/03 */

#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
 
 
static void usage(char *prg) {
 
	fprintf(stderr, "%s uid gid cmd [param ...]\n", prg);
}
 
 
int main(int ac, char **av, char **env) {
 
	if (ac < 4) {
		usage(av[0]);
		return 1;
	}
	if (setgid(atoi(av[2])) || setuid(atoi(av[1]))) {
		perror("setgid/setuid");
		return 2;
	}
	execve(av[3], &av[3], env);
	perror(av[3]);
	return 3;
}
