History log of /openbsd-src/usr.sbin/procmap/procmap.c (Results 1 – 25 of 74)
Revision Date Author Comments
# 82ba26c4 20-Oct-2024 claudio <claudio@openbsd.org>

VM_MAP_BUSY and VM_MAP_WANTLOCK will be removed soon, prep for that.
OK dlg@


# d7d958b8 28-Aug-2024 naddy <naddy@openbsd.org>

Stop printing the "syscall" bit in the header line, too.

ok deraadt@


# 670fc3bf 29-Mar-2024 deraadt <deraadt@openbsd.org>

Stop printing the "syscall" bit related to msyscall(2), since the subsystem
is being deleted.


# cd701b82 10-Nov-2022 deraadt <deraadt@openbsd.org>

change default output to -a format; ok tb


# e45a0bdd 07-Oct-2022 deraadt <deraadt@openbsd.org>

Show the entry immutable bit in the various output formats.


# 4ec73a12 22-Feb-2022 deraadt <deraadt@openbsd.org>

MAXCOMLEN is no longer needed in these programs, so remove the annotation
from sys/param.h include lines, or remove the include lines entirely if
it this was the least requirement.
ok millert


# 3736a0a0 20-Feb-2022 deraadt <deraadt@openbsd.org>

sys/proc.h requires sys/signal.h (will become visible when sys/param.h
is removed)


# 89936646 29-Nov-2019 deraadt <deraadt@openbsd.org>

correct order of region bits for -a case: rwxSepc


# e5041725 29-Nov-2019 deraadt <deraadt@openbsd.org>

Repurpose the "syscalls must be on a writeable page" mechanism to
enforce a new policy: system calls must be in pre-registered regions.
We have discussed more strict checks than this, but none satisf

Repurpose the "syscalls must be on a writeable page" mechanism to
enforce a new policy: system calls must be in pre-registered regions.
We have discussed more strict checks than this, but none satisfy the
cost/benefit based upon our understanding of attack methods, anyways
let's see what the next iteration looks like.

This is intended to harden (translation: attackers must put extra
effort into attacking) against a mixture of W^X failures and JIT bugs
which allow syscall misinterpretation, especially in environments with
polymorphic-instruction/variable-sized instructions. It fits in a bit
with libc/libcrypto/ld.so random relink on boot and no-restart-at-crash
behaviour, particularily for remote problems. Less effective once on-host
since someone the libraries can be read.

For static-executables the kernel registers the main program's
PIE-mapped exec section valid, as well as the randomly-placed sigtramp
page. For dynamic executables ELF ld.so's exec segment is also
labelled valid; ld.so then has enough information to register libc's
exec section as valid via call-once msyscall(2)

For dynamic binaries, we continue to to permit the main program exec
segment because "go" (and potentially a few other applications) have
embedded system calls in the main program. Hopefully at least go gets
fixed soon.

We declare the concept of embedded syscalls a bad idea for numerous
reasons, as we notice the ecosystem has many of
static-syscall-in-base-binary which are dynamically linked against
libraries which in turn use libc, which contains another set of
syscall stubs. We've been concerned about adding even one additional
syscall entry point... but go's approach tends to double the entry-point
attack surface.

This was started at a nano-hackathon in Bob Beck's basement 2 weeks
ago during a long discussion with mortimer trying to hide from the SSL
scream-conversations, and finished in more comfortable circumstances
next to a wood-stove at Elk Lakes cabin with UVM scream-conversations.

ok guenther kettenis mortimer, lots of feedback from others
conversations about go with jsing tb sthen

show more ...


# 7aa9f692 05-Feb-2019 deraadt <deraadt@openbsd.org>

dev_t is signed to permit passing -1 as an invalid condition, but the
decomposition into major and minor is unsigned, so we should print them
with %u instead of %d.
ok guenther


# e10be9fc 31-Mar-2018 otto <otto@openbsd.org>

Fix description of -v and implement -v for -a showing holes; ok deraadt@


# 17f2de0a 16-Sep-2016 dlg <dlg@openbsd.org>

procmap fumbles with uvm_map_addr structures, which are now in RBTs

it also does proper traversal of the tree (ie, it does FOREACH)
which in turn uses MIN and NEXT operations to iterate over the who

procmap fumbles with uvm_map_addr structures, which are now in RBTs

it also does proper traversal of the tree (ie, it does FOREACH)
which in turn uses MIN and NEXT operations to iterate over the whole
tree. theyre complicated and need code.

so for now this pulls in subr_tree.c from the kernel and builds it
as part of procmap. that allows for traversal of the RBT using the
same code that the kernel uses.

it is a bit ugly though because procmap updates the pointers between
items in the tree so they point at local copies instead of kernel
addresses. its made worse because RBT code has pointers between
rb_entry structs, not between the nodes.

im putting this in now to unbreak the tree. it can be polished after
coffee/naps.

show more ...


# 2f639c72 26-May-2016 stefan <stefan@openbsd.org>

Re-introduce vnode-to-filename mapping

The name cache walking code got adapted to the new name cache layout.
Along with the previous commit, procmap is now able to map a vnode
to a filename as long

Re-introduce vnode-to-filename mapping

The name cache walking code got adapted to the new name cache layout.
Along with the previous commit, procmap is now able to map a vnode
to a filename as long as it is in the name cache.

"nice stuff" deraadt@

show more ...


# 24d8c976 25-May-2016 stefan <stefan@openbsd.org>

Must extract uvm_vnode from uvm_object first before reading the vnode

Otherwise procmap interprets the uvm_vnode contents as a vnode,
yielding bogus values. This should cure the
"procmap: invalid ad

Must extract uvm_vnode from uvm_object first before reading the vnode

Otherwise procmap interprets the uvm_vnode contents as a vnode,
yielding bogus values. This should cure the
"procmap: invalid address (ffffffffffffffff) == -1 vs. 656 @ ffffffffffffffff"
error messages that appear sporadically.

ok deraadt@

show more ...


# d87a7803 16-Apr-2016 stefan <stefan@openbsd.org>

Remove am_maxslot from amap.

am_maxslot represents the total number of slots an amap can be extended
to. Since we do not extend amaps, this field as well as rounding the
number of slots to the next

Remove am_maxslot from amap.

am_maxslot represents the total number of slots an amap can be extended
to. Since we do not extend amaps, this field as well as rounding the
number of slots to the next malloc bucket is not useful.

This also removes the corresponding output from procmap(1).

ok kettenis@

show more ...


# 126e54ad 19-Jan-2015 kettenis <kettenis@openbsd.org>

Also print the fspace member of map entries when PRINT_VM_MAP_ENTRY is
requested.

ok deraadt@


# b9fc9a72 16-Jan-2015 deraadt <deraadt@openbsd.org>

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_N

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)

show more ...


# 1e8cdc2e 16-Nov-2014 deraadt <deraadt@openbsd.org>

Replace a plethora of historical protection options with just
PROT_NONE, PROT_READ, PROT_WRITE, and PROT_EXEC from mman.h.
PROT_MASK is introduced as the one true way of extracting those bits.
Remove

Replace a plethora of historical protection options with just
PROT_NONE, PROT_READ, PROT_WRITE, and PROT_EXEC from mman.h.
PROT_MASK is introduced as the one true way of extracting those bits.
Remove UVM_ADV_* wrapper, using the standard names.
ok doug guenther kettenis

show more ...


# cf6677a6 08-Sep-2014 guenther <guenther@openbsd.org>

Delete procfs; it's always had races and is now unused: no one noticed for
months that I broke it before the 5.5 release.

confirmed as not being required by ports by sthen@, ajacoutot@, dcoppa@


# e6c6495d 08-Jul-2014 deraadt <deraadt@openbsd.org>

decouple struct uvmexp into a new file, so that uvm_extern.h and sysctl.h
don't need to be married.
ok guenther miod beck jsing kettenis


# d543b645 08-Jul-2014 deraadt <deraadt@openbsd.org>

There really isn't a strict "heap" anymore, so just call everything like
that an anon. Useful change since BRKSIZ will soon leave the namespace.
ok kettenis


# 5ad04d35 20-May-2014 guenther <guenther@openbsd.org>

Use errc/warnc to simplify code.
Also, in 'ftp', always put the error message last, after the hostname/ipaddr.

ok jsing@ krw@ millert@


# 291c1a78 13-Feb-2014 tedu <tedu@openbsd.org>

remove tendrils of namei dumping code


# a362fec4 13-Feb-2014 tedu <tedu@openbsd.org>

use strtonum


# e76eb0cb 12-Aug-2013 otto <otto@openbsd.org>

get ready for big ino_t; ok gunther@


123