Recently, I've created a pledge wrapper for C#. [1] I discovered that pledge seems to trigger on shared memory manipulations, which aren't mentioned in the man page for pledge. For example, Mono uses shared memory, which triggers pledge unless I add the "cpath" promise. (It also uses "vminfo," to check for boot time, but this seems fairly expected.) Anyways, should SHM operations be mentioned in the man page, or is this a bug?
A backtrace of Mono tripping up on exit without the promise: (gdb) bt #0 0x0000196ea192113a in unlink () at <stdin>:2 #1 0x0000196ea18bf018 in shm_unlink (path=Variable "path" is not available.) at /usr/src/lib/libc/gen/shm_open.c:87 #2 0x0000196bc332e085 in mono_shared_area_remove () from /usr/local/bin/mono #3 0x0000196ea191bcc7 in *_libc___cxa_finalize (dso=0x0) at /usr/src/lib/libc/stdlib/atexit.c:159 #4 0x0000196ea191a07e in *_libc_exit (status=0) at /usr/src/lib/libc/stdlib/exit.c:57 #5 0x0000196bc312dce8 in _start () from /usr/local/bin/mono #6 0x0000000000000000 in ?? () Oh, and just in case, if you omit "vminfo" instead: (gdb) bt #0 0x00001e868df09eaa in sysctl () at <stdin>:2 #1 0x00001e844fa302c0 in mono_free () from /usr/local/bin/mono #2 0x00001e844f9deed0 in mono_gchandle_get_target () from /usr/local/bin/mono #3 0x00001e844f9da27e in mono_runtime_cleanup () from /usr/local/bin/mono #4 0x00001e844f82e63b in mono_get_runtime_build_info () from /usr/local/bin/mono #5 0x00001e844f8964d7 in mono_main () from /usr/local/bin/mono #6 0x00001e844f82dce1 in _start () from /usr/local/bin/mono #7 0x0000000000000000 in ?? () [1] https://github.com/NattyNarwhal/pledge.cs

