diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 2004-09-28 15:10:52 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 2004-09-28 15:10:52 +0000 |
commit | b2ce21d7e22822255c394cc618c029fdcd31be4d (patch) | |
tree | ba0dcff50d70b05985ecb9590c0bf828c151a021 /usr.bin/sudo/sudo_noexec.c | |
parent | 6d2330fc528f6b282a6ed3bff15e92d30ee98805 (diff) |
Update to sudo 1.6.8p1
Diffstat (limited to 'usr.bin/sudo/sudo_noexec.c')
-rw-r--r-- | usr.bin/sudo/sudo_noexec.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/usr.bin/sudo/sudo_noexec.c b/usr.bin/sudo/sudo_noexec.c new file mode 100644 index 00000000000..f06f03f53a3 --- /dev/null +++ b/usr.bin/sudo/sudo_noexec.c @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2004 Todd C. Miller <Todd.Miller@courtesan.com> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "config.h" + +#include <errno.h> + +#ifndef lint +static const char rcsid[] = "$Sudo: sudo_noexec.c,v 1.5 2004/02/13 21:36:43 millert Exp $"; +#endif /* lint */ + +/* + * Dummy versions of the execve() family of syscalls. We don't need + * to stub out all of them, just the ones that correspond to actual + * system calls (which varies by OS). Note that it is still possible + * to access the real syscalls via the syscall() interface but very + * few programs actually do that. + */ + +#ifndef errno +extern int errno; +#endif + +#define DUMMY(fn, args, atypes) \ +int \ +fn args \ + atypes \ +{ \ + errno = EACCES; \ + return(-1); \ +} + +DUMMY(execve, (path, argv, envp), + const char *path; char *const argv[]; char *const envp[];) +DUMMY(_execve, (path, argv, envp), + const char *path; char *const argv[]; char *const envp[];) +DUMMY(execv, (path, argv, envp), + const char *path; char *const argv[];) +DUMMY(_execv, (path, argv, envp), + const char *path; char *const argv[];) +DUMMY(fexecve, (fd, argv, envp), + int fd; char *const argv[]; char *const envp[];) +DUMMY(_fexecve, (fd, argv, envp), + int fd; char *const argv[]; char *const envp[];) |