Commit Graph

134 Commits

Author SHA1 Message Date
mycroft e3f99a9397 Pass the vnode type to vaccess(), and use it when checking VEXEC. Make sure
that the mode bits passed to vaccess() and returned by foo_getattr() contain
only permission bits.
1997-05-08 16:19:43 +00:00
mycroft d7f33c5e60 va_mode contains stat bits. Use S_IS[UG]ID rather than VS[UG]ID. 1997-05-08 10:19:10 +00:00
mycroft b34794e10f Do not return success when checking for execute permission by super-user and no
execute bits are set.  Also, this test is no longer needed in execve(2).
1997-04-23 20:18:16 +00:00
kleink cb9c71d716 Back out last change: just return EACCESS for any non-VREG file.
Fixes PR/3472 from Matthias Pfaller.
1997-04-10 19:45:40 +00:00
mycroft e01c3bbe05 Return EISDIR for directories, not EACCES. 1997-03-14 06:12:11 +00:00
mrg 7de1b7c8eb only set P_SUGID once. 1997-01-07 10:41:02 +00:00
cgd e7af2a8237 * catch up with system call argument type fixups/const poisoning.
* Fix arguments to various copyin()/copyout() invocations, to avoid
  gratuitous casts.
* Some KNF formatting fixes
1996-12-22 10:21:06 +00:00
cgd 3b34cba879 exec vnode locking protocol changes: in a nutshell, don't keep vnodes
locked for any longer than we have to.
1996-09-30 23:18:43 +00:00
cgd 2f42e5b8ed fix some typos and clean up some comments. 1996-09-26 23:34:46 +00:00
christos 09afd77655 More proto fixes 1996-02-09 18:59:18 +00:00
christos 8a5b1b92e2 First pass at prototyping 1996-02-04 02:15:01 +00:00
mycroft feb42498e3 If we abort, make sure to free ep_emul_arg. 1995-12-09 04:11:00 +00:00
mycroft 245f292fed Prefix names of system call implementation functions with `sys_'. 1995-10-07 06:25:19 +00:00
thorpej 60024eb978 Make system calls conform to a standard prototype and bring those
prototypes into scope.
1995-09-19 21:40:36 +00:00
christos 7de0fcfd12 Add KTR_EMUL to indicate a switch between syscall emulations.
Currently this record is emitted only on exec. Maybe it should
be emitted on ktrace() attach too.
1995-07-19 15:19:08 +00:00
mycroft bfd22ffde8 Generate the new ps_strings format. 1995-05-16 14:19:03 +00:00
cgd 2581c66077 remember first error code (if any) that's different than ENOEXEC.
Not perfect, but there's no perfect solution to the "multiple interesting
error codes" problem.
1995-05-01 22:36:45 +00:00
christos 3d1b06ab09 - new copyargs routine.
- use emul_xxx
- deprecate nsysent; use constant SYS_MAXSYSCALL instead.
- deprecate ep_setup
- call sendsig and setregs indirectly.
1995-04-22 19:42:47 +00:00
mycroft c75f9f2e07 Change `fdclose' to `fdrelease', to avoid confusion with device interfaces. 1995-04-10 18:27:59 +00:00
fvdl 366ba9b889 Use sigcode fields in package structure. This seems to be the cleanest
way to deal with seperate trampoline code for emulation of other OSs,
it avoids having to clutter up kern_exec.c any further.
1995-04-07 22:33:23 +00:00
mycroft 2f805fa51b copy*str() should use size_t. 1995-03-09 12:05:21 +00:00
cgd 6782442a8c use long for argc, envc, and u_long for len. 1995-03-08 01:23:00 +00:00
cgd c7fde1470b various XXX changes that linux bins need to get their args correctly. 1995-02-28 23:09:01 +00:00
mycroft e8f67573e2 Align the stack even if envp is NULL. 1995-02-22 01:39:56 +00:00
mycroft a8dd9a66e2 Optimize differently. 1995-02-04 14:44:48 +00:00
mycroft 5561e58072 Small optimization. 1995-02-04 14:22:13 +00:00
mycroft 90ef05a32c Use common fdclose() rather than a private version. 1994-12-04 03:10:40 +00:00
deraadt dc7de949e9 change exec_setup_fcn() to be more useful (from christos) 1994-10-24 05:32:19 +00:00
cgd 6b86130410 update for new syscall args description mechanism 1994-10-20 04:22:35 +00:00
cgd cf92afd66e New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD' 1994-06-29 06:29:24 +00:00
mycroft 699bbb84b6 Update to 4.4-Lite fs code. 1994-06-08 11:28:29 +00:00
mycroft d1f36d3007 fname --> path 1994-05-27 08:44:12 +00:00
deraadt d0f39cffd9 return 0 on success 1994-05-27 07:58:37 +00:00
cgd ebcaebd335 MIN -> min, MAX -> max 1994-05-24 02:35:53 +00:00
cgd 82fabd73d5 struct execve_args now defined in exec.h 1994-05-21 07:48:10 +00:00
cgd 72db136279 kill bogus include 1994-05-07 04:17:10 +00:00
cgd 4bbabd8e7a Rename a lot of process flags. 1994-05-04 03:41:12 +00:00
cgd f50f031448 kill syscall name aliases. no user-visible changes 1994-04-29 04:41:02 +00:00
cgd 675a199909 SUGID semantics, similar to 4.4BSD 1994-04-07 00:40:14 +00:00
cgd a790e23e87 simplify error returns, and fix bugs 1994-02-16 01:21:00 +00:00
mycroft 974e9ba226 Fix typo in last change. 1994-02-12 07:19:11 +00:00
cgd 3a46cb73c6 ditto on the last; weird failure modes are the cause of the day. 1994-02-12 07:02:34 +00:00
cgd 64517d6f7f don't forget to deallocate vmcmds if exec fails bounds checks.
thanks to charles for pointing it out.
1994-02-12 04:13:43 +00:00
cgd 114cf35108 dtrt with exec header size 1994-02-05 02:23:30 +00:00
cgd 8c996398fc clean up, break script handling out of check_exec(), and comment a bit. 1994-01-16 03:09:59 +00:00
cgd 8ca18c3fa8 use exec_map 1994-01-13 06:23:57 +00:00
cgd 7422e2a40c trim debugging code, for now, and kill dead code (unused options) 1994-01-13 02:33:57 +00:00
cgd 4c8ff3970f try until error != ENOEXEC, so that formats can report errros reasonably 1994-01-09 17:11:42 +00:00
cgd 34ea9285e9 de-macroify kill_vmcmds() 1994-01-08 18:05:29 +00:00
cgd 957ce06f24 far reaching but relatively minor cleanup and slight reorg of exec code 1994-01-08 07:14:24 +00:00
mycroft 8955aeedd5 #include vm_user.h. 1994-01-08 04:15:41 +00:00
cgd 914aac9116 field name change 1994-01-04 11:29:55 +00:00
cgd a67d24d94b add support for p_vnode, from jsp 1993-12-22 13:39:27 +00:00
deraadt c38503af4d sparc must flush register windows before vm_deallocate or else fireworks
must deallocate shm's
set/reset emulation environment at the right times
keep arg buffer around for later use
canonicalize all #includes.
support STACKGAP for COMPAT_SUNOS code
support OMAGIC/NMAGIC-style memory loading
don't assume VM_MIN_ADDRESS is 0.
(changes come from magnum branch)
1993-12-12 19:38:37 +00:00
mycroft 620a222f9f If EXEC_DEBUG, display name of file we're trying to exec. 1993-12-06 14:18:58 +00:00
cgd dde22728d4 drag changes down from magnum 1993-11-15 10:21:08 +00:00
cgd 13ca4d98c7 it's correct to return EACCES if FS is mounted MNT_NOEXEC. 1993-10-26 01:42:56 +00:00
cgd c7582cbd4f use copyinstr rather than strcpy to copy in the saved shell-script
name from userland.  From Markus Wild, mw@lamp
1993-10-26 00:32:29 +00:00
cgd a84055b552 use the ALIGN macro to align the stack, rather than rounding up
by a (char *).  the former is safe, even on strange machines
(read: sparc).
1993-10-06 07:27:58 +00:00
cgd 83aeee1bc0 there now exists an "exec switch". break the a.out code into another
module, and tidy up the interface so that other object formats are
more easily supportable.
1993-09-05 01:33:35 +00:00
cgd 491d6b4b9d fix problem where exec would lose on shell scripts with symlinks in
their names.  fix from "James W. Dolter" <jdolter@sawtooth.eecs.umich.edu>.
test script:

#!/bin/csh
mkdir /tmp/foodir
cat > /tmp/foodir/testscript <<EOF
#!/bin/sh
echo "Executing script \$1"
EOF
chmod 755 /tmp/foodir/testscript
(cd /tmp ; ln -s foodir foosym)
echo "Trying full path (w/o symlink) to /tmp/foodir/testscript"
/tmp/foodir/testscript "with out symlink"
echo "Trying full path (w/ symlink) to /tmp/foosym/testscript"
/tmp/foosym/testscript "with symlink"
echo "End of Test"
1993-09-01 21:43:50 +00:00
cgd d365662684 ok, initialize that errno, to make theo and gcc2 happy... 1993-08-31 01:52:34 +00:00
cgd 518f7c78d6 a program being exec'd *must* cause *some* exec commands to be invoked;
if it doesn't there's a problem in the kernel, because a program
with no exec commands run will have no address space except the stack,
and i don't think it's valid to have a "run from stack only" exec type,
so panic.  if need for that case comes up later, it can be changed...
1993-08-31 01:46:36 +00:00
cgd 2680a043c7 general cleanup (get close to KNF), and remove a few fuzzies
in preparation for The Grand Re-rewriting.
1993-07-28 04:08:27 +00:00
cgd c0334ef92c break args structs out, into syscallname_args structs, so gcc2 doesn't
whine so much.
1993-07-13 22:13:15 +00:00
brezak b5236e7d0f Roundup stack len to naturally aligned address. This fixes emacs aborting due to an odd address in alloca'ed memory. 1993-07-10 02:07:48 +00:00
brezak 31d24dc82e Ignore the flags field in midmag. 1993-07-08 16:48:18 +00:00
cgd b274bb4126 add support for checking entry against max user address 1993-07-05 01:53:56 +00:00
cgd 955ae6a915 change exit() to kexit(), so prototypes are "safe" with stdio.h, etc. 1993-07-04 23:30:33 +00:00
cgd b21025e4f3 call setregs with a retval, too, so the hp300 & mac, and more works. 1993-07-04 09:48:29 +00:00
andrew 0e6cb953ea ANSIfications - removed all implicit function return types and argument
definitions.  Ensured that all files include "systm.h" to gain access to
general prototypes.  Casts where necessary.
1993-06-27 06:01:27 +00:00
glass ee8d969be4 ansi-style function definitions 1993-06-22 01:31:53 +00:00
cgd c8bdad0560 convert magic numbers to network byte order, and attendent changes 1993-06-18 06:49:30 +00:00
cgd 24fe3e4563 fixed bug where extra spaces at the end of a shell name would
cause shell scripts to be executed incorrectly.  shells would
receive an *empty* arg for name of script, open it, the kernel
would say "oh, that's ." or something similar, and the results
would be interesting...  found, diagnosed, and killed by me.
1993-06-07 03:09:29 +00:00
cgd 7489eff03c fix stoopid location to label problem 1993-06-06 02:36:22 +00:00
cgd 165b917efe add fixes supplied by markus wild 1993-06-05 19:38:13 +00:00
cgd 23f01c5982 call a cpu-dependent function to check executable's a_mid type. 1993-06-03 01:31:43 +00:00
cgd 654e213804 when copying out signal trampoline code, make sure that
the copyout actually succeeds.
1993-06-02 04:43:54 +00:00
cgd d2bf51450c fixed minor typo in sigcode copying code 1993-06-02 03:15:36 +00:00
cgd af4017c23f general cleanup including, but not limited to:
better-integreate vmcmd building and exec hdr interpretation,
	get stack sigcode copying right
	etc.
1993-06-02 02:49:40 +00:00
cgd 956c046db5 do address mapping in a new way...
it works, but the code needs to be cleaned some...
1993-06-02 00:20:07 +00:00
cgd 4206d7f100 break before letting child run, if tracing, and do the right
thing with stack limits
1993-06-01 04:52:40 +00:00
cgd 0656a4bbbe final patchups, also add support for finding argv/env via PS_STRINGS 1993-06-01 01:31:39 +00:00
cgd eb4c4de385 replace exec.
new one based on one by Wolfgang Solfrank, but majorly hacked
(as it: it didn't have a chance in hell of working, before; didn't
even bother copying out argc, for one...)
1993-05-31 01:44:55 +00:00