summaryrefslogtreecommitdiffstats
path: root/usr.bin/kdump
Commit message (Collapse)AuthorAgeFilesLines
* - Make localtime(3) to work in sandbox.pjd2013-07-181-5/+28
| | | | - Move strerror(3) initialization to its own function.
* - Trim an unused and bogus Makefile for mount_smbfs.davide2013-06-281-0/+2
| | | | | | - Reconnect with some minor modifications, in particular now selsocket() internals are adapted to use sbintime units after recent'ish calloutng switch.
* Use getnameinfo(3) instead of inet_ntop(3) to make printable versions ofae2013-06-071-1/+3
| | | | | | | sockaddr_in6 structures. getnameinfo(3) does the same thing, but it is also able to represent a scope zone id as described in the RFC 4007. MFC after: 2 weeks
* If the -r option is given we cannot enter capability mode.pjd2013-05-301-2/+4
| | | | | | The option tells kdump to convert numeric UIDs and GIDs into user and group names plus to convert times and dates into locallized versions. This all needs opening various files at various occasions.
* MFp4 @229086:pjd2013-05-281-0/+50
| | | | | | | | | | | | | | | | | | | | | Make use of Capsicum to protect kdump(1), as it might be used to parse data from untrusted sources: - Sandbox kdump(1) using capability mode. - Limit stdin descriptor (where opened file is moved to) to only CAP_READ and CAP_FSTAT rights. - Limit stdout descriptor to only CAP_WRITE, CAP_FSTAT and CAP_IOCTL. Plus limit allowed ioctls to TIOCGETA only, which is needed for isatty() to work. - Limit stderr descriptor to only CAP_WRITE and CAP_FSTAT. In addition if the -s option is not given, grant CAP_IOCTL right, but allow for TIOCGWINSZ ioctl only, as we need screen width to dump the data. - Before entering capability mode call catopen("libc", NL_CAT_LOCALE), which opens message catalogs and caches data, so that strerror(3) and strsignal(3) can work in a sandbox. Sponsored by: The FreeBSD Foundation Discussed with: rwatson
* MFp4 @229085:pjd2013-05-281-5/+5
| | | | | | | Rearrange the code so we don't call ioctl(TIOCGWINSZ) if the -s option is given, as the result won't be used then. Sponsored by: The FreeBSD Foundation
* Merge Capsicum overhaul:pjd2013-03-022-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Capability is no longer separate descriptor type. Now every descriptor has set of its own capability rights. - The cap_new(2) system call is left, but it is no longer documented and should not be used in new code. - The new syscall cap_rights_limit(2) should be used instead of cap_new(2), which limits capability rights of the given descriptor without creating a new one. - The cap_getrights(2) syscall is renamed to cap_rights_get(2). - If CAP_IOCTL capability right is present we can further reduce allowed ioctls list with the new cap_ioctls_limit(2) syscall. List of allowed ioctls can be retrived with cap_ioctls_get(2) syscall. - If CAP_FCNTL capability right is present we can further reduce fcntls that can be used with the new cap_fcntls_limit(2) syscall and retrive them with cap_fcntls_get(2). - To support ioctl and fcntl white-listing the filedesc structure was heavly modified. - The audit subsystem, kdump and procstat tools were updated to recognize new syscalls. - Capability rights were revised and eventhough I tried hard to provide backward API and ABI compatibility there are some incompatible changes that are described in detail below: CAP_CREATE old behaviour: - Allow for openat(2)+O_CREAT. - Allow for linkat(2). - Allow for symlinkat(2). CAP_CREATE new behaviour: - Allow for openat(2)+O_CREAT. Added CAP_LINKAT: - Allow for linkat(2). ABI: Reuses CAP_RMDIR bit. - Allow to be target for renameat(2). Added CAP_SYMLINKAT: - Allow for symlinkat(2). Removed CAP_DELETE. Old behaviour: - Allow for unlinkat(2) when removing non-directory object. - Allow to be source for renameat(2). Removed CAP_RMDIR. Old behaviour: - Allow for unlinkat(2) when removing directory. Added CAP_RENAMEAT: - Required for source directory for the renameat(2) syscall. Added CAP_UNLINKAT (effectively it replaces CAP_DELETE and CAP_RMDIR): - Allow for unlinkat(2) on any object. - Required if target of renameat(2) exists and will be removed by this call. Removed CAP_MAPEXEC. CAP_MMAP old behaviour: - Allow for mmap(2) with any combination of PROT_NONE, PROT_READ and PROT_WRITE. CAP_MMAP new behaviour: - Allow for mmap(2)+PROT_NONE. Added CAP_MMAP_R: - Allow for mmap(PROT_READ). Added CAP_MMAP_W: - Allow for mmap(PROT_WRITE). Added CAP_MMAP_X: - Allow for mmap(PROT_EXEC). Added CAP_MMAP_RW: - Allow for mmap(PROT_READ | PROT_WRITE). Added CAP_MMAP_RX: - Allow for mmap(PROT_READ | PROT_EXEC). Added CAP_MMAP_WX: - Allow for mmap(PROT_WRITE | PROT_EXEC). Added CAP_MMAP_RWX: - Allow for mmap(PROT_READ | PROT_WRITE | PROT_EXEC). Renamed CAP_MKDIR to CAP_MKDIRAT. Renamed CAP_MKFIFO to CAP_MKFIFOAT. Renamed CAP_MKNODE to CAP_MKNODEAT. CAP_READ old behaviour: - Allow pread(2). - Disallow read(2), readv(2) (if there is no CAP_SEEK). CAP_READ new behaviour: - Allow read(2), readv(2). - Disallow pread(2) (CAP_SEEK was also required). CAP_WRITE old behaviour: - Allow pwrite(2). - Disallow write(2), writev(2) (if there is no CAP_SEEK). CAP_WRITE new behaviour: - Allow write(2), writev(2). - Disallow pwrite(2) (CAP_SEEK was also required). Added convinient defines: #define CAP_PREAD (CAP_SEEK | CAP_READ) #define CAP_PWRITE (CAP_SEEK | CAP_WRITE) #define CAP_MMAP_R (CAP_MMAP | CAP_SEEK | CAP_READ) #define CAP_MMAP_W (CAP_MMAP | CAP_SEEK | CAP_WRITE) #define CAP_MMAP_X (CAP_MMAP | CAP_SEEK | 0x0000000000000008ULL) #define CAP_MMAP_RW (CAP_MMAP_R | CAP_MMAP_W) #define CAP_MMAP_RX (CAP_MMAP_R | CAP_MMAP_X) #define CAP_MMAP_WX (CAP_MMAP_W | CAP_MMAP_X) #define CAP_MMAP_RWX (CAP_MMAP_R | CAP_MMAP_W | CAP_MMAP_X) #define CAP_RECV CAP_READ #define CAP_SEND CAP_WRITE #define CAP_SOCK_CLIENT \ (CAP_CONNECT | CAP_GETPEERNAME | CAP_GETSOCKNAME | CAP_GETSOCKOPT | \ CAP_PEELOFF | CAP_RECV | CAP_SEND | CAP_SETSOCKOPT | CAP_SHUTDOWN) #define CAP_SOCK_SERVER \ (CAP_ACCEPT | CAP_BIND | CAP_GETPEERNAME | CAP_GETSOCKNAME | \ CAP_GETSOCKOPT | CAP_LISTEN | CAP_PEELOFF | CAP_RECV | CAP_SEND | \ CAP_SETSOCKOPT | CAP_SHUTDOWN) Added defines for backward API compatibility: #define CAP_MAPEXEC CAP_MMAP_X #define CAP_DELETE CAP_UNLINKAT #define CAP_MKDIR CAP_MKDIRAT #define CAP_RMDIR CAP_UNLINKAT #define CAP_MKFIFO CAP_MKFIFOAT #define CAP_MKNOD CAP_MKNODAT #define CAP_SOCK_ALL (CAP_SOCK_CLIENT | CAP_SOCK_SERVER) Sponsored by: The FreeBSD Foundation Reviewed by: Christoph Mallon <christoph.mallon@gmx.de> Many aspects discussed with: rwatson, benl, jonathan ABI compatibility discussed with: kib
* - Make actually printing path of AF_LOCAL socket types.zont2013-02-121-3/+1
| | | | MFC after: 1 week
* - Use correct size of copying different socket structures.zont2013-02-121-5/+5
| | | | MFC after: 1 week
* o Bring in sync decoding the first nfssvc(2) parameter (flags) withpluknet2013-02-121-1/+1
| | | | | | | the current definitions location. o Respect numbers in NFSSVC_* (e.g. NFSSVC_V4ROOTEXPORT). MFC after: 1 week
* kdump: Also decode fcntl commands containing underscores and digits.jilles2012-11-021-1/+1
| | | | | The commands F_SETLK_REMOTE, F_DUPFD_CLOEXEC and F_DUP2FD_CLOEXEC were not decoded.
* Disconnect non-MPSAFE SMBFS from the build in preparation for droppingattilio2012-10-181-2/+0
| | | | | | | | | | | | | GIANT from VFS. In addition, disconnect also netsmb, which is a base requirement for SMBFS. In the while SMBFS regular users can use FUSE interface and smbnetfs port to work with their SMBFS partitions. Also, there are ongoing efforts by vendor to support in-kernel smbfs, so there are good chances that it will get relinked once properly locked. This is not targeted for MFC.
* kdump: Pretty-print signal codes.jilles2012-09-222-5/+57
| | | | MFC after: 1 week
* Allow the -p argument to kdump to accept either a PID or a thread ID.jhb2012-06-042-5/+7
| | | | | Submitted by: Dmitry Banschikov d.banschikov hostcomm ru MFC after: 1 week
* MFprojects/zfsd:mav2012-05-241-0/+2
| | | | | | | | | | | Revamp the CAM enclosure services driver. This updated driver uses an in-kernel daemon to track state changes and publishes physical path location information\for disk elements into the CAM device database. Sponsored by: Spectra Logic Corporation Sponsored by: iXsystems, Inc. Submitted by: gibbs, will, mav
* Include the associated wait channel message for context switch ktracejhb2012-04-202-4/+15
| | | | | | | records. kdump supports both the old and new messages. Submitted by: Andrey Zonov andrey zonov org MFC after: 1 week
* In kdump's mkioctls script, use '${CPP}' instead of hardcodedly usingdim2012-04-092-2/+2
| | | | | | | 'gcc -E'. This fixes building when WITH_CLANG_IS_CC is in effect. Report by: Niclas Zeising <zeising@daemonic.se> MFC after: 1 week
* Add new ktrace records for the start and end of VM faults. This givesjhb2012-04-053-1/+59
| | | | | | | | | | a pair of records similar to syscall entry and return that a user can use to determine how long page faults take. The new ktrace records are enabled via the 'p' trace type, and are enabled in the default set of trace points. Reviewed by: kib MFC after: 2 weeks
* Fix style in previous commit.jhb2012-02-241-3/+3
| | | | Submitted by: bde
* Pretty-print the advice constants passed to posix_fadvise(2).jhb2012-02-232-0/+10
| | | | MFC after: 2 weeks
* It turns out that truss also used kdump's mkioctls script, and expecteddes2011-10-212-18/+35
| | | | | | | | | | | | ioctlname() to return a pointer to the name rather than print it. This did not show up in testing because truss had its own prototype for ioctlname(), so it would build fine and run fine as long as the program being traced did not issue an ioctl. Teach mkioctls to generate different versions of ioctlname() based on its first command-line argument. Pointed out by: Garrett Cooper <yanegomi@gmail.com>
* Fix copy-pasto in CAPFAIL_INCREASE case.des2011-10-181-2/+2
| | | | Noticed by: pjd
* Revisit the capability failure trace points. The initial implementationdes2011-10-181-4/+30
| | | | | | | | only logged instances where an operation on a file descriptor required capabilities which the file descriptor did not have. By adding a type enum to struct ktr_cap_fail, we can catch other types of capability failures as well, such as disallowed system calls or attempts to wrap a file descriptor with more capabilities than it had to begin with.
* Clean up mkioctls a bit, and fix cross-building by checking ${MACHINE}des2011-10-132-5/+7
| | | | | | instead of $(uname -m). Pointed out by: nyan@
* Make kdump compile cleanly at WARNS level 6, with one exception: thedes2011-10-123-28/+44
| | | | | | | | | | ipfilter headers contain a duplicated function declaration. Turn off -Werror to allow kdump to compile in spite of this. It would be neat to be able to turn off -Werror on a file-by-file basis... PR: bin/161478 Submitted by: Garrett Cooper <yanegomi@gmail.com>
* Add a new trace point, KTRFAC_CAPFAIL, which traces capability checkdes2011-10-111-6/+43
| | | | failures. It is included in the default set for ktrace(1) and kdump(1).
* The previous commit did not fix the issue since it did not prevent signdes2011-10-111-8/+8
| | | | | | extension. Cast to u_register_t first, then to uintmax_t. Submitted by: bde@
* Cast to unsigned for %#jx.des2011-10-111-1/+1
| | | | Noticed by: jh@
* Address some of bde@'s concerns with the new code.des2011-10-081-72/+71
|
* Teach kdump(1) to decode capability bitmasks.des2011-10-082-0/+9
| | | | MFC after: 3 weeks
* Fix the dependency issue properly by a) moving kdump_subr.c to the frontdes2011-10-081-6/+2
| | | | of the SRCS list and b) listing kdump_subr.h in DPSRCS.
* Bring ioctlname() in line with all the other *name() functions, whichdes2011-10-082-31/+21
| | | | | | | actually print the name (or the numeric value, if they can't figure out the correct name) instead of just returning a pointer to it. Also, since ioctl numbers are not and probably never will be unique, drop support for using a switch statement instead of an if/else chain.
* I appreciate the logic behind using a (void) cast to indicate that thedes2011-10-082-155/+155
| | | | | | | | return value is intentionally ignored, but frankly, all it does is get in the way of the code. Also fix a few other incorrect casts, such as (void *)malloc(foo) and passing signed values to %x.
* Fix casting.des2011-10-082-74/+75
|
* Whitespace.des2011-10-081-90/+90
|
* C has had swicth statements for 40 years or so. It's about time wedes2011-10-081-93/+143
| | | | started using them.
* Sort and line up.des2011-10-081-38/+37
|
* 1) Some of the #defines or enums for which we auto-generate namingdes2011-10-084-72/+37
| | | | | | | | | | | | | functions may be wider than int, so use intmax_t throughout. Also add missing casts in printf() calls. 2) Clean up some of the auto-generated code to improve readability. 3) Auto-generate kdump_subr.h. Note that this requires a semi-ugly hack in the Makefile to make sure it is generated before make(1) tries to build kdump.c, or preprocess it for 'make depend'. MFC after: 3 weeks
* Add 2-clause BSD license.netchild2011-06-171-0/+23
| | | | | | Approved by: David Kirchner <dpk@dpk.net> (initial author) Requested by: Otto Moerbeek <otto@drijf.net> MFC after: 1 week
* Fix regex for ptraceopname().dchagin2011-06-061-1/+1
| | | | | | PR: bin/157663 Submitted by: jason wright <jason@thought.net> MFC after: 10 days
* kdump: Show code for signals where the default action was taken.jilles2011-04-171-1/+1
| | | | | | | This information is available as of kernel r220740. Trace files from older kernels will always have 0. MFC after: 1 week
* Teach kdump to decode linux syscalls names too.dchagin2011-03-013-19/+138
| | | | | | | | Fix bug introduced in my previous commit: the kernel always dump native signal numbers, so no need to check the ABI in ktrpsig(). Suggested by: jhb MFC after: 1 Month.
* Update manual page to reflect latest changes of ABI description support.dchagin2011-02-251-1/+3
| | | | MFC after: 1 Month.
* Teach kdump to understand sv_flags records in the trace files.dchagin2011-02-251-16/+123
| | | | MFC after: 1 Month.
* Remove the advertising clause from UCB copyrighted files in usr.bin. Thisjoel2010-12-112-8/+0
| | | | | | | | | is in accordance with the information provided at ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change Also add $FreeBSD$ to a few files to keep svn happy. Discussed with: imp, rwatson
* Decode IPC_CREAT and IPC_EXCL for semget(2).delphij2010-12-021-0/+2
| | | | | | PR: bin/152781 Submitted by: Anton Yuzhaninov <citrin citrin ru> MFC after: 2 weeks
* Correct the abbreviations for general I/O and signal traces.jhb2010-11-011-3/+3
| | | | | | PR: docs/151854 Submitted by: Stephen Veiss stephen of brokenbottle net MFC after: 3 days
* Fix regex for some socket- and acl-related syscall values.netchild2010-10-061-2/+2
| | | | | | Submitted by: Mikhail <hidden.node@gmail.com> PR: 149295 MFC-after: 2 weeks
* Fix indenting of the previous commit.rpaulo2010-09-161-4/+4
|
* When generating functions to print the arguments of system calls withrpaulo2010-09-161-0/+5
| | | | | | | | | | | | | bitwise parameters (e.g. mmap), print the syscall parameter value first. The resulting output looks like the %b specifier of printf(9). Before: mmap(0,0x8000,PROT_READ|PROT_WRITE,... After: mmap(0,0x8000,0x3<PROT_READ|PROT_WRITE>,... Submitted by: Norberto Lopes <nlopes.ml at gmail.com> Idea from: freebsd-arch/2006-April/005116.html
OpenPOWER on IntegriCloud