Commit Graph

72 Commits

Author SHA1 Message Date
christos
d4e7e4c9c4 Fix a ptrace/execve race that could be used to modify the child process's
image during execve. This is a security issue because one can
do that to setuid programs... From FreeBSD.
2002-01-11 21:16:27 +00:00
thorpej
03efee5585 * Allow machine-dependent code to specify hooks for ptrace(2)
(__HAVE_PTRACE_MACHDEP) and procfs (__HAVE_PROCFS_MACHDEP).
  These changes will allow platforms like x86 (XMM) and PowerPC
  (AltiVec) to export extended register sets in a sane manner.

* Use __HAVE_PTRACE_MACHDEP to export x86 XMM registers (standard
  FP + SSE/SSE2) using PT_{GET,SET}XMMREGS (in the machdep
  ptrace request space).
* Use __HAVE_PROCFS_MACHDEP to export x86 XMM registers via
  /proc/N/xmmregs in procfs.
2001-12-05 00:58:05 +00:00
lukem
adc783d537 add RCSIDs 2001-11-12 15:25:01 +00:00
wiz
a9356936b4 seperate -> separate 2001-07-22 13:33:58 +00:00
nathanw
9e8fb68348 The trace_req() function is a no-op; garbage collect it. 2001-06-13 16:06:27 +00:00
pooka
6c3e28927e fix typo in comment 2001-03-17 09:38:36 +00:00
fvdl
ea08a209b5 Adapt for procfs_valid* argument change. 2001-01-17 01:13:23 +00:00
erh
3392996d23 Prevent ptrace on system processes. Avoids panic when attempting to ptrace pid 0, which has no parent. 2000-09-24 07:31:28 +00:00
thorpej
a86d1f4891 Add a lock around the scheduler, and use it as necessary, including
in the non-MULTIPROCESSOR case (LOCKDEBUG requires it).  Scheduler
lock is held upon entry to mi_switch() and cpu_switch(), and
cpu_switch() releases the lock before returning.

Largely from Bill Sommerfeld, with some minor bug fixes and
machine-dependent code hacking from me.
2000-08-20 21:50:06 +00:00
eeh
2152b574c0 Fix LP64BE bug. 2000-07-28 04:21:26 +00:00
mrg
32aa199ccf remove include of <vm/vm.h> 2000-06-27 17:41:07 +00:00
sommerfe
ef07055d58 Disallow tracing of processes unless tracer's root directory is at or
above tracee's root directory.
1999-03-25 04:45:56 +00:00
mrg
d2397ac5f7 completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
mrg
d90485202c - add defopt's for UVM, UVMHIST and PMAP_NEW.
- remove unnecessary UVMHIST_DECL's.
1998-02-10 14:08:44 +00:00
mrg
1a8c7604f4 initial import of the new virtual memory system, UVM, into -current.
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some
minor portions derived from the old Mach code.  i provided some help
getting swap and paging working, and other bug fixes/ideas.  chuck
silvers <chuq@chuq.com> also provided some other fixes.

this is the rest of the MI portion changes.

this will be KNF'd shortly.  :-)
1998-02-05 07:59:28 +00:00
mycroft
701f15db33 Reinstate P_FSTRACE, with different semantics:
* Never send a SIGCHLD to the parent if P_FSTRACE is set.
* Do not permit mixing ptrace(2) and procfs; only permit using the one that
  was attached.
1997-04-28 04:49:27 +00:00
mycroft
e725c03060 When checking for init, compare against initproc, rather than comparing the
PID.  No functional difference.
1997-04-28 02:29:52 +00:00
tls
3052b5a949 fix obscure problem involving ptrace of init 1996-05-15 06:17:47 +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
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
mycroft
36a94a031a Lock the process in core before operating on it. 1995-08-13 09:05:51 +00:00
mycroft
d7e904a697 Fix various signal handling bugs:
* If we got a stopping signal while already stopped with the same signal,
the second signal would sometimes (but not always) be ignored.
* Signals delivered by the debugger always pretended to be stopping
signals.
* PT_ATTACH still didn't quite work right.
1995-06-08 23:51:01 +00:00
mycroft
4a975bbe6f If necessary, wake up the child during attach so we always get a SIGCHLD. 1995-06-05 20:57:54 +00:00
mycroft
53f792b77d Omit the call to process_sstep() if PT_STEP is not defined. 1995-02-09 05:19:18 +00:00
cgd
a03b011499 undo a part of the last change that mistakenly required PT_STEP.
(i simply undid that part of the change.)  also, fix a tyop.
1995-02-08 23:38:29 +00:00
mycroft
1815d82b85 Make attach/detach more safe. 1995-02-03 11:35:57 +00:00
mycroft
42d23cb6e4 Remove PT_{READ,WRITE}_U. 1995-01-26 17:56:21 +00:00
cgd
6ac2bbfc35 be more careful with types, also pull in headers where necessary. 1994-10-30 21:43:03 +00:00
cgd
6b86130410 update for new syscall args description mechanism 1994-10-20 04:22:35 +00:00
mycroft
3cc6cbc0e6 Correct test for already being traced. 1994-09-24 07:17:18 +00:00
cgd
b690c315ff ugly (#ifdef) hack to fix m68k alignment differences, etc. Eventually,
should be done with a 'natual alignment' macro, or some such.
1994-09-14 16:40:29 +00:00
deraadt
280592c6a7 replace "ctob(UPAGES)" and "UPAGES * NBPG" with "USPACE"
(cvs dumped core during previous commit...)
1994-08-23 22:13:59 +00:00
cgd
94109335b3 kill errant spaces 1994-08-21 21:24:33 +00:00
mycroft
77fe78350b Minor update to a comment. 1994-08-15 16:45:14 +00:00
cgd
97bdeab31e replace with a completely rewritten version, based around the 4.4BSD
procfs.  Now the author of the old version will stop complaining that
we're using his code.
1994-08-15 16:32:41 +00:00
cgd
b48d84b629 replce with virgin copy from 4.4-Lite 1994-08-15 16:29:22 +00:00
ws
2db64ab48d Try to pick myself up from the floor where I fell laughing. 1994-07-12 22:20:46 +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
cgd
fcb7a3c514 Implement ptrace() functionality, based on the previous version
by Sean Eric Fagan.
1994-05-18 11:37:00 +00:00
cgd
e5456f6c3e replace sys_process.c with the 4.4-Lite version 1994-05-18 11:32:27 +00:00
cgd
ed848af6f7 function name changes 1994-05-07 00:51:06 +00:00
cgd
a0a7429482 lots of changes: prototype migration, move lots of variables, definitions,
and structure elements around.  kill some unnecessary type and macro
definitions.  standardize clock handling.  More changes than you'd want.
1994-05-05 05:35:42 +00:00
cgd
4bbabd8e7a Rename a lot of process flags. 1994-05-04 03:41:12 +00:00
cgd
675a199909 SUGID semantics, similar to 4.4BSD 1994-04-07 00:40:14 +00:00
pk
b2d32f38eb A zero scale factor turns profiling off. 1994-03-11 09:12:22 +00:00
pk
a2e2253e6c Remove out-dated comments 1994-02-03 16:17:25 +00:00
cgd
55d2821ec0 make sure PT_STEP's are in #ifdefs 1994-01-28 19:06:17 +00:00
cgd
1b2497a000 if you define PT_[GS]ETFPREGS, then you'd better define struct fpreg, etc. 1994-01-28 06:51:13 +00:00