]> granicus.if.org Git - strace/log
strace
8 years agoRemove UNDEFINED_SCNO
Elvira Khabirova [Sun, 12 Jun 2016 16:11:43 +0000 (19:11 +0300)]
Remove UNDEFINED_SCNO

Since UNDEFINED_SCNO is set if and only if !SCNO_IS_VALID
and since tcp->s_ent can only be set to &sysent[tcp->scno]
(or to &unknown, but only when !SCNO_IS_VALID), there is no need
to check for UNDEFINED_SCNO before calling syscall_name(tcp->scno).

* defs.h (UNDEFINED_SCNO): Remove.
* syscall.c (get_scno, trace_syscall_entering, trace_syscall_exiting):
Remove checks for UNDEFINED_SCNO.

8 years agotests/attach-f-p.c: fix typo in comment
Dmitry V. Levin [Mon, 13 Jun 2016 22:15:49 +0000 (22:15 +0000)]
tests/attach-f-p.c: fix typo in comment

8 years agostrace.c: fix style in function definition
Elvira Khabirova [Sun, 12 Jun 2016 22:43:15 +0000 (01:43 +0300)]
strace.c: fix style in function definition

* strace.c (kill_save_errno): Move the type of return value
to another line.

8 years agoTurn on more compiler warnings
Elvira Khabirova [Sun, 12 Jun 2016 22:41:02 +0000 (01:41 +0300)]
Turn on more compiler warnings

* configure.ac (gl_WARN_ADD): Add -Wempty-body, -Wformat-security,
-Wignored-qualifiers, -Winit-self, -Wlogical-op,
-Wmissing-parameter-type, -Wnested-externs, -Wold-style-declaration,
-Wold-style-definition, -Wtype-limits.

8 years agostrace.c: fix a warning reported by -Wold-style-definition
Elvira Khabirova [Sun, 12 Jun 2016 22:41:33 +0000 (01:41 +0300)]
strace.c: fix a warning reported by -Wold-style-definition

* strace.c (usage): Add void to the list of function argments.

8 years agotests/ioctl_evdev.c: fix typo in comment
Dmitry V. Levin [Sun, 12 Jun 2016 22:12:33 +0000 (22:12 +0000)]
tests/ioctl_evdev.c: fix typo in comment

8 years agoMove printargs* functions to util.c
Elvira Khabirova [Sun, 12 Jun 2016 13:39:02 +0000 (16:39 +0300)]
Move printargs* functions to util.c

* syscall.c (printargs, printargs_u, printargs_d): Move ...
* util.c: ... here.

8 years agotests/xgetrlimit.c: fix a warning reported by -Wtype-limits
Elvira Khabirova [Sat, 11 Jun 2016 17:27:16 +0000 (20:27 +0300)]
tests/xgetrlimit.c: fix a warning reported by -Wtype-limits

* tests/xgetrlimit.c (sprint_rlim): Explicitly cast constants
to the type of argument.

8 years agoConsistently use printaddr for printing addresses
Dmitry V. Levin [Sat, 11 Jun 2016 01:28:21 +0000 (01:28 +0000)]
Consistently use printaddr for printing addresses

* bjm.c (SYS_FUNC(init_module)): Use printaddr.
* clone.c (SYS_FUNC(clone)): Likewise.
* evdev.c (ff_effect_ioctl): Likewise.
* mtd.c (decode_mtd_oob_buf): Likewise.
* net.c (SYS_FUNC(sendmmsg), SYS_FUNC(recvmmsg), SYS_FUNC(getsockopt)):
Likewise.
* print_sigevent.c (print_sigevent): Likewise.
* printsiginfo.c (printsigval, print_si_info): Likewise.
* signal.c (decode_new_sigaction): Likewise.
* sysmips.c (SYS_FUNC(sysmips)): Likewise.
* util.c (printpathn, printstr, umoven_or_printaddr): Likewise.
* v4l2.c (print_v4l2_buffer, print_v4l2_framebuffer,
umoven_or_printaddr_ignore_syserror): Likewise.
* tests/net-icmp_filter.c (main): Update.

Based on patch by Eugene Syromyatnikov <evgsyr@gmail.com>.

8 years agotests/attach-p-cmd-p.c: cleanup
Dmitry V. Levin [Fri, 10 Jun 2016 14:20:25 +0000 (14:20 +0000)]
tests/attach-p-cmd-p.c: cleanup

* attach-p-cmd-p.c (handler): Move code ...
(main): ... here.  Unblock SIGALRM only.
Use alarm() instead of setitimer().
Replace endless loop with a pause() call.
Check that chdir() returns ENOENT.

8 years agotests: enhance test coverage of SIGCHLD siginfo_t
Dmitry V. Levin [Fri, 10 Jun 2016 09:22:12 +0000 (09:22 +0000)]
tests: enhance test coverage of SIGCHLD siginfo_t

* tests/siginfo.c: New file.
* tests/siginfo.test: New test.
* tests/wait.c: Remove.
* tests/wait.expected: Remove.
* tests/wait.test: Remove.
* tests/.gitignore: Add siginfo, remove wait.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add siginfo.test, remove wait.test.
(EXTRA_DIST): Remove wait.expected.

8 years agotests: extend test coverage of waitid syscall
Dmitry V. Levin [Fri, 10 Jun 2016 09:16:10 +0000 (09:16 +0000)]
tests: extend test coverage of waitid syscall

* tests/waitid.c: New file.
* tests/waitid-v.c: Likewise.
* tests/waitid.test: New test.
* tests/waitid-v.test: Likewise.
* tests/.gitignore: Add waitid and waitid-v.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add waitid.test and waitid-v.test.

8 years agotests: extend test coverage of wait4 syscall
Dmitry V. Levin [Fri, 10 Jun 2016 09:15:59 +0000 (09:15 +0000)]
tests: extend test coverage of wait4 syscall

* tests/wait4.c: New file.
* tests/wait4-v.c: Likewise.
* tests/wait4.test: New test.
* tests/wait4-v.test: Likewise.
* tests/.gitignore: Add wait4 and wait4-v.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add wait4.test and wait4-v.test.

8 years agotests: add widen_to_ull macro to tests.h
Dmitry V. Levin [Fri, 10 Jun 2016 09:13:32 +0000 (09:13 +0000)]
tests: add widen_to_ull macro to tests.h

* tests.h (widen_to_ull): New macro, copied from defs.h

8 years agoFix sign extension issues in the parser of struct rusage
Dmitry V. Levin [Fri, 10 Jun 2016 01:27:45 +0000 (01:27 +0000)]
Fix sign extension issues in the parser of struct rusage

* printrusage.c (printrusage): Do not cast members of struct rusage
to type long, use widen_to_ull instead.

8 years agotests: check decoding of waitpid syscall
Dmitry V. Levin [Thu, 9 Jun 2016 01:29:45 +0000 (01:29 +0000)]
tests: check decoding of waitpid syscall

* tests/waitpid.c: New file.
* tests/waitpid.test: New test.
* tests/.gitignore: Add waitpid.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add waitpid.test.

8 years agotests: add strace-E.test
Fei Jie [Wed, 8 Jun 2016 02:31:29 +0000 (10:31 +0800)]
tests: add strace-E.test

* tests/strace-E.expected: New file.
* tests/strace-E.test: New test.
* tests/Makefile.am (MISC_TESTS): Add it.
(EXTRA_DIST): Add strace-E.expected.

8 years agostrace.spec.in: enable libunwind on more platforms
Dmitry V. Levin [Wed, 8 Jun 2016 10:02:42 +0000 (10:02 +0000)]
strace.spec.in: enable libunwind on more platforms

* strace.spec.in: Add libunwind-devel to BuildRequires for RHEL8 family.

8 years agomake-dist: generate strace-*.tar.gz, strace.dsc, and strace.spec
Dmitry V. Levin [Wed, 8 Jun 2016 00:32:22 +0000 (00:32 +0000)]
make-dist: generate strace-*.tar.gz, strace.dsc, and strace.spec

Change make-dist to generate strace-*.tar.gz, strace.dsc,
and strace.spec in addition to strace-*.tar.xz.

* configure.ac (AM_INIT_AUTOMAKE): Remove no-dist-gzip.
* make-dsc: New file.
* make-dist: Use it.
* .gitignore: Add strace-*.tar.gz, strace.dsc, and strace.spec.

8 years agoParametrize debian/changelog
Dmitry V. Levin [Wed, 8 Jun 2016 00:32:09 +0000 (00:32 +0000)]
Parametrize debian/changelog

* configure.ac (CHANGELOGTIME): Rename to RPM_CHANGELOGTIME.
(DEB_CHANGELOGTIME): New variable.
(AC_CONFIG_FILES): Add debian/changelog.
* strace.spec.in: Rename CHANGELOGTIME to RPM_CHANGELOGTIME.
* debian/changelog: Rename to ...
* debian/changelog.in: ... this file.  Add parametrized entry.
* debian/.gitignore: New file.

8 years agogit-version-gen: replace '-' with '.' in generated version
Dmitry V. Levin [Wed, 8 Jun 2016 00:23:28 +0000 (00:23 +0000)]
git-version-gen: replace '-' with '.' in generated version

* git-version-gen: Replace '-' with '.' so version conforms to policies
* configure.ac (SPEC_VERSION): Remove.
* strace.spec.in: Replace SPEC_VERSION with PACKAGE_VERSION.
Remove %srcname.

8 years agoParametrize strace.spec
Dmitry V. Levin [Tue, 7 Jun 2016 18:04:53 +0000 (18:04 +0000)]
Parametrize strace.spec

* configure.ac (SPEC_VERSION, CHANGELOGTIME): Define.
(AC_CONFIG_FILES): Add strace.spec.
* strace.spec: Rename to ...
* strace.spec.in: ... this file.  Parametrize Version, srcname,
and the last %changelog entry.  Initialize .tarball-version file.

8 years agostrace.spec: adopt for OBS
Dmitry V. Levin [Tue, 7 Jun 2016 18:03:21 +0000 (18:03 +0000)]
strace.spec: adopt for OBS

* strace.spec: Parametrize libunwind-devel BRs, BuildRoot, and %defattr.

8 years agotests: remove obsolete strace-f.test
Dmitry V. Levin [Tue, 7 Jun 2016 17:52:53 +0000 (17:52 +0000)]
tests: remove obsolete strace-f.test

strace-f.test is too inexact while fork-f.test does the right thing.

* tests/strace-f.test: Remove.
* tests/Makefile.am (MISC_TESTS): Remove it.
* strace.spec (BuildRequires): Remove time.

8 years agotests: always distribute strace-k.test
Dmitry V. Levin [Tue, 7 Jun 2016 09:32:17 +0000 (09:32 +0000)]
tests: always distribute strace-k.test

Fix distribution of tests/strace-k.test file when configured
without libunwind.

* tests/Makefile.am (EXTRA_DIST): Add strace-k.test.

8 years agomake-dist: skip news-check for non-releases
Dmitry V. Levin [Tue, 7 Jun 2016 09:17:12 +0000 (09:17 +0000)]
make-dist: skip news-check for non-releases

* make-dist: Run news-check only when the commit being built
matches a release tag.

8 years agotests: check decoding of setrlimit, getrlimit, and ugetrlimit syscalls
Dmitry V. Levin [Mon, 6 Jun 2016 21:26:08 +0000 (21:26 +0000)]
tests: check decoding of setrlimit, getrlimit, and ugetrlimit syscalls

* tests/getrlimit.c: New file.
* tests/setrlimit.c: Likewise.
* tests/ugetrlimit.c: Likewise.
* tests/xgetrlimit.c: Likewise.
* tests/getrlimit.test: New test.
* tests/setrlimit.test: Likewise.
* tests/ugetrlimit.test: Likewise.
* tests/.gitignore: Add getrlimit, setrlimit, and ugetrlimit.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add getrlimit.test, setrlimit.test,
and ugetrlimit.test.
(EXTRA_DIST): Add xgetrlimit.c.

8 years agotests: check decoding of prlimit64 syscall
Dmitry V. Levin [Mon, 6 Jun 2016 21:25:54 +0000 (21:25 +0000)]
tests: check decoding of prlimit64 syscall

* tests/prlimit64.c: New file.
* tests/prlimit64.test: New test.
* tests/.gitignore: Add prlimit64.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add prlimit64.test.

8 years agoFix decoding of pid_t argument of prlimit64 syscall
Dmitry V. Levin [Mon, 6 Jun 2016 21:25:36 +0000 (21:25 +0000)]
Fix decoding of pid_t argument of prlimit64 syscall

* resource.c (SYS_FUNC(prlimit64)): Print pid_t syscall
argument using %d format.

8 years agoDo not check for old sysctl enums
Dmitry V. Levin [Mon, 6 Jun 2016 15:39:11 +0000 (15:39 +0000)]
Do not check for old sysctl enums

Assume that sysctl enums defined since linux v2.6 are always defined,
with a signle exception: check for CTL_PROC which definition was removed
in v2.6.18 and restored later in v2.6.23.

* configure.ac (AC_CHECK_DECLS): Remove old constants.
* xlat/sysctl_kern.in: Mark constants older than KERN_PRINTK_RATELIMIT
as unconditional.
* xlat/sysctl_net.in: Mark constants older than NET_LLC
as unconditional.
* xlat/sysctl_net_core.in: Mark constants older than NET_CORE_BUDGET
as unconditional.
* xlat/sysctl_net_ipv4.in: Mark constants older than
NET_IPV4_IGMP_MAX_MSF as unconditional.
* xlat/sysctl_net_ipv4_conf.in: Mark constants older than
NET_IPV4_CONF_FORCE_IGMP_VERSION as unconditional.
* xlat/sysctl_net_ipv4_route.in: Mark constants older than
NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS as unconditional.
* xlat/sysctl_net_ipv6.in: Mark constants older than
NET_IPV6_MLD_MAX_MSF as unconditional.
* xlat/sysctl_net_ipv6_route.in: Mark constants older than
NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS as unconditional.
* xlat/sysctl_net_unix.in: Mark all constants as unconditional.
* xlat/sysctl_root.in: Mark constants older than CTL_ARLAN
as unconditional.
* xlat/sysctl_vm.in: Mark constants older than VM_MAX_MAP_COUNT
as unconditional.

8 years agoxlat: extend syntax
Dmitry V. Levin [Mon, 6 Jun 2016 15:08:45 +0000 (15:08 +0000)]
xlat: extend syntax

* xlat/gen.sh: Implement #conditional directive that turns on
preprocessor checks turned off earlier by #unconditional directive.

8 years agompers.awk: remove unnecessary type attribute retrieval
Elvira Khabirova [Mon, 6 Jun 2016 01:57:59 +0000 (04:57 +0300)]
mpers.awk: remove unnecessary type attribute retrieval

* mpers.awk (what_is): Do not retrieve "type" attribute
for "enumeration_type".

8 years agotests/ptrace.c: fix fork() return value check
Elvira Khabirova [Sun, 5 Jun 2016 23:39:59 +0000 (02:39 +0300)]
tests/ptrace.c: fix fork() return value check

* tests/ptrace.c (test_peeksiginfo): Explicitly cast fork() return value
to pid_t.

8 years ago.gitignore: add missing files that should be ignored
Elvira Khabirova [Mon, 6 Jun 2016 00:24:19 +0000 (03:24 +0300)]
.gitignore: add missing files that should be ignored

* .gitignore: Add ioctl_redefs[12].h and libstrace.a.

8 years agodebian: sync with the package
Dmitry V. Levin [Sun, 5 Jun 2016 23:08:58 +0000 (23:08 +0000)]
debian: sync with the package

* debian/control (Build-Depends) [amd64]: Remove libunwind-dev.
* debian/changelog: Sync with 4.12-3.
* debian/rules: Likewise.

8 years agotests/strace-S.test: fix testing 64-bit strace using a 32-bit userspace
Dmitry V. Levin [Sat, 4 Jun 2016 23:40:40 +0000 (23:40 +0000)]
tests/strace-S.test: fix testing 64-bit strace using a 32-bit userspace

* tests/strace-S.test: Measure wall clock time instead of system time.
Use local "./readv" instead of system "date" as a sample executable.

Reported-by: Steve McIntyre <steve@einval.com>
8 years agotests/strace-S.test: enhance error diagnostics
Dmitry V. Levin [Fri, 3 Jun 2016 23:46:27 +0000 (23:46 +0000)]
tests/strace-S.test: enhance error diagnostics

* tests/strace-S.test: If strace output does not meet expectations,
print the output.

8 years ago.gitignore: sort the list of ignored patterns
Dmitry V. Levin [Thu, 2 Jun 2016 22:59:20 +0000 (22:59 +0000)]
.gitignore: sort the list of ignored patterns

* .gitignore: Sort.

8 years agomaint: post-release administrivia
Dmitry V. Levin [Wed, 1 Jun 2016 23:56:14 +0000 (23:56 +0000)]
maint: post-release administrivia

* NEWS: Add header line for the next release.

8 years agoPrepare for 4.12 release v4.12
Dmitry V. Levin [Tue, 31 May 2016 11:12:13 +0000 (11:12 +0000)]
Prepare for 4.12 release

* NEWS: Update for 4.12 release.
* debian/changelog: 4.12-1.
* strace.spec: 4.12-1.

8 years agoSync strace.spec and debian/changelog with packages
Dmitry V. Levin [Tue, 31 May 2016 10:47:53 +0000 (10:47 +0000)]
Sync strace.spec and debian/changelog with packages

* debian/changelog: Sync with 4.11-1.
* strace.spec: Sync with 4.11.0.163.9720-2.

8 years agoMpersify hdio.c
Dmitry V. Levin [Mon, 30 May 2016 00:25:03 +0000 (00:25 +0000)]
Mpersify hdio.c

* defs.h (hdio_ioctl): Remove.
* hdio.c: Mpersify struct hd_geometry.
(hdio_ioctl): Mpersify.

8 years agoloop.c: decode LOOP_SET_DIRECT_IO
Dmitry V. Levin [Sun, 29 May 2016 22:58:56 +0000 (22:58 +0000)]
loop.c: decode LOOP_SET_DIRECT_IO

* loop.c (loop_ioctl) [LOOP_SET_DIRECT_IO] : Handle LOOP_SET_DIRECT_IO.

8 years agoloop.c: fix printing of arrays
Dmitry V. Levin [Sun, 29 May 2016 22:34:30 +0000 (22:34 +0000)]
loop.c: fix printing of arrays

* loop.c (decode_loop_info): Use square brackets to print
struct loop_info.lo_init and struct loop_info.reserved arrays.
(decode_loop_info64): Use square brackets to print
struct loop_info64.lo_init array.

8 years agoloop.c: fix printing of structure members' names
Dmitry V. Levin [Sun, 29 May 2016 22:28:28 +0000 (22:28 +0000)]
loop.c: fix printing of structure members' names

* loop.c (decode_loop_info, decode_loop_info64): Do not strip "lo_"
prefix from printed names.

8 years agoloop.c: optimize decoding of paired ioctls
Dmitry V. Levin [Sun, 29 May 2016 22:15:53 +0000 (22:15 +0000)]
loop.c: optimize decoding of paired ioctls

* loop.c (loop_ioctl): Optimize decoding of LOOP_[GS]ET_STATUS
and LOOP_[GS]ET_STATUS64 ioctl pairs.

8 years agotests/ioctl_evdev.c: check EVIOCGUNIQ decoding
Dmitry V. Levin [Sat, 28 May 2016 22:12:32 +0000 (22:12 +0000)]
tests/ioctl_evdev.c: check EVIOCGUNIQ decoding

* tests/ioctl_evdev.c (main): Check EVIOCGUNIQ(0) decoding.

8 years agotests/ioctl_mtd.c: fix build with musl
Dmitry V. Levin [Sat, 28 May 2016 19:55:01 +0000 (19:55 +0000)]
tests/ioctl_mtd.c: fix build with musl

* tests/ioctl_mtd.c: Include <linux/ioctl.h>.

8 years agotests: check decoding of 'M' type ioctls
Dmitry V. Levin [Sat, 28 May 2016 18:49:47 +0000 (18:49 +0000)]
tests: check decoding of 'M' type ioctls

* tests/ioctl_mtd.c: New file.
* tests/ioctl_mtd.test: New test.
* tests/.gitignore: Add ioctl_mtd.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add ioctl_mtd.test.

8 years agoMpersify mtd.c
Dmitry V. Levin [Sat, 28 May 2016 18:46:39 +0000 (18:46 +0000)]
Mpersify mtd.c

* defs.h (mtd_ioctl): Remove.
* mtd.c: Mpersify struct mtd_oob_buf and ioctl numbers.
(mtd_ioctl): Mpersify.

8 years agomtd.c: refactor
Dmitry V. Levin [Sat, 28 May 2016 18:42:50 +0000 (18:42 +0000)]
mtd.c: refactor

* mtd.c (mtd_ioctl): Move parsers of structures to separate functions.

8 years agoMove parser of UBI_* ioctls to a separate file
Dmitry V. Levin [Sat, 28 May 2016 10:29:30 +0000 (10:29 +0000)]
Move parser of UBI_* ioctls to a separate file

* mtd.c (ubi_ioctl): Move to ...
* ubi.c: ... new file.
* Makefile.am (strace_SOURCES): Add it.

8 years agotests: check decoding of EVIOC* ioctls
Dmitry V. Levin [Sat, 28 May 2016 00:51:45 +0000 (00:51 +0000)]
tests: check decoding of EVIOC* ioctls

* tests/ioctl_evdev.c: New file.
* tests/ioctl_evdev-v.c: Likewise.
* tests/ioctl_evdev.test: New test.
* tests/ioctl_evdev-v.test: Likewise.
* tests/.gitignore: Add ioctl_evdev and ioctl_evdev-v.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add ioctl_evdev.test and ioctl_evdev-v.test.

8 years agoMpersify EVIOC* ioctl parser
Dmitry V. Levin [Fri, 27 May 2016 00:49:08 +0000 (00:49 +0000)]
Mpersify EVIOC* ioctl parser

* defs.h (evdev_abs): New xlat prototype.
(evdev_ioctl): Remove.
* evdev.c: Do not include "xlat/evdev_abs.h".
Mpersify struct ff_effect and ioctl numbers.
(evdev_ioctl): Mpersify.
* NEWS: Mention this enhancement.

8 years agoevdev.c: fix printing of unrecognized event type passed to EVIOCGBIT
Dmitry V. Levin [Sat, 28 May 2016 00:49:17 +0000 (00:49 +0000)]
evdev.c: fix printing of unrecognized event type passed to EVIOCGBIT

* evdev.c (bit_ioctl): If event type is not unrecognized,
print the argument as an address.

8 years agoevdev.c: fix printing of EV_PWR's argument
Dmitry V. Levin [Sat, 28 May 2016 00:12:01 +0000 (00:12 +0000)]
evdev.c: fix printing of EV_PWR's argument

* evdev.c (bit_ioctl): Fix printing of comma before EV_PWR's argument.

8 years agoevdev.c: fix indentation
Dmitry V. Levin [Fri, 27 May 2016 00:42:25 +0000 (00:42 +0000)]
evdev.c: fix indentation

* evdev.c: Fix indentation of print formats.

8 years agoevdev.c: fix decoding of EVIOCGNAME, EVIOCGPHYS, and EVIOCGUNIQ
Dmitry V. Levin [Fri, 27 May 2016 00:42:18 +0000 (00:42 +0000)]
evdev.c: fix decoding of EVIOCGNAME, EVIOCGPHYS, and EVIOCGUNIQ

* evdev.c (evdev_read_ioctl): Fix printing of the string returned
in response to EVIOCGNAME, EVIOCGPHYS, and EVIOCGUNIQ requests.

8 years agoevdev.c: fix EVIOCGVERSION decoding
Dmitry V. Levin [Fri, 27 May 2016 00:42:07 +0000 (00:42 +0000)]
evdev.c: fix EVIOCGVERSION decoding

* evdev.c (evdev_read_ioctl): Print EVIOCGVERSION's argument
using #x format.

8 years agoevdev.c: fix EVIOCGMTSLOTS decoding
Dmitry V. Levin [Fri, 27 May 2016 00:41:59 +0000 (00:41 +0000)]
evdev.c: fix EVIOCGMTSLOTS decoding

* evdev.c (mtslots_ioctl): Use umove_or_printaddr.

8 years agoevdev.c: fix bitset decoding
Dmitry V. Levin [Fri, 27 May 2016 00:41:51 +0000 (00:41 +0000)]
evdev.c: fix bitset decoding

* evdev.c (decode_bitset): Use umove_or_printaddr.

8 years agoevdev.c: fix decoding of struct input_id
Dmitry V. Levin [Fri, 27 May 2016 00:41:43 +0000 (00:41 +0000)]
evdev.c: fix decoding of struct input_id

* evdev.c (getid_ioctl): Use umove_or_printaddr.

8 years agoevdev.c: fix decoding of struct input_keymap_entry
Dmitry V. Levin [Fri, 27 May 2016 00:41:34 +0000 (00:41 +0000)]
evdev.c: fix decoding of struct input_keymap_entry

* evdev.c (keycode_V2_ioctl): Use umove_or_printaddr.

8 years agoevdev.c: fix decoding of EVIOCGKEYCODE/EVIOCSKEYCODE
Dmitry V. Levin [Fri, 27 May 2016 00:41:25 +0000 (00:41 +0000)]
evdev.c: fix decoding of EVIOCGKEYCODE/EVIOCSKEYCODE

* evdev.c (keycode_ioctl): Use umove_or_printaddr.

8 years agoevdev.c: fix decoding of struct input_absinfo
Dmitry V. Levin [Fri, 27 May 2016 00:41:14 +0000 (00:41 +0000)]
evdev.c: fix decoding of struct input_absinfo

* evdev.c (abs_ioctl): Use umove_or_printaddr.

8 years agoevdev.c: fix decoding of struct ff_effect
Dmitry V. Levin [Fri, 27 May 2016 00:41:02 +0000 (00:41 +0000)]
evdev.c: fix decoding of struct ff_effect

* evdev.c (ff_effect_ioctl): Use umove_or_printaddr.
Fix printing of struct ff_effect.u member names.

8 years agoevdev.c: fix printing of struct ff_envelope.fade_level
Dmitry V. Levin [Fri, 27 May 2016 00:40:53 +0000 (00:40 +0000)]
evdev.c: fix printing of struct ff_envelope.fade_level

* evdev.c (decode_envelope): Print struct ff_envelope.fade_level
using #x format.

8 years agoevdev.c: fix decoding of EVIOCGRAB and EVIOCREVOKE
Dmitry V. Levin [Fri, 27 May 2016 00:40:45 +0000 (00:40 +0000)]
evdev.c: fix decoding of EVIOCGRAB and EVIOCREVOKE

* evdev.c (evdev_write_ioctl): Print argument of EVIOCGRAB
and EVIOCREVOKE as unsigned long.

8 years agoevdev.c: fix EVIOCRMFF decoding
Dmitry V. Levin [Fri, 27 May 2016 00:40:27 +0000 (00:40 +0000)]
evdev.c: fix EVIOCRMFF decoding

* evdev.c (evdev_write_ioctl): Print EVIOCRMFF's argument as int.

8 years agoevdev.c: move handling of EVIOCGBIT to a separate function
Dmitry V. Levin [Fri, 27 May 2016 00:40:18 +0000 (00:40 +0000)]
evdev.c: move handling of EVIOCGBIT to a separate function

* evdev.c (evdev_read_ioctl): Move EVIOCGBIT handling to ...
(bit_ioctl): ... new function.

8 years agoevdev.c: reorder ioctl command checks
Dmitry V. Levin [Fri, 27 May 2016 00:40:10 +0000 (00:40 +0000)]
evdev.c: reorder ioctl command checks

Change the order of ioctl command cheks to match the kernel:
1st, check for fixed-number fixed-length commands,
2nd, check for fixed-number variable-length commands,
3rd, check for multi-number fixed-length commands,
4thm check for multi-number variable-length commands.

* evdev.c (evdev_read_ioctl, evdev_write_ioctl): Reorder
ioctl command checks.

8 years agoevdev.c: decode all directions except _IOC_READ on entering syscall
Dmitry V. Levin [Fri, 27 May 2016 00:40:02 +0000 (00:40 +0000)]
evdev.c: decode all directions except _IOC_READ on entering syscall

* evdev.c (evdev_write_ioctl): Remove exiting check.
(evdev_read_ioctl): Move entering check ...
(evdev_ioctl): ... here.  Add RVAL_DECODED to return code in _IOC_WRITE
and default cases.

8 years agoevdev.c: fix indentation of preprocessor directives
Dmitry V. Levin [Fri, 27 May 2016 00:39:33 +0000 (00:39 +0000)]
evdev.c: fix indentation of preprocessor directives

* evdev.c: Fix indentation of preprocessor directives.
Move inclusion of <linux/ioctl.h> into [HAVE_LINUX_INPUT_H].

8 years agofile_ioctl.c: print first two extents for FIDEDUPERANGE in abbrev mode
Jeff Mahoney [Fri, 27 May 2016 20:07:22 +0000 (16:07 -0400)]
file_ioctl.c: print first two extents for FIDEDUPERANGE in abbrev mode

* file_ioctl.c (file_ioctl, print_file_dedupe_range_info): Print first
two elements of info array in abbrev mode.
* tests/btrfs.c (btrfs_test_extent_same_ioctl): Handle newly
printed elements.

8 years agoioctl.c: fix typo in decoding of EVIOCSABS's parameter
Dmitry V. Levin [Fri, 27 May 2016 01:11:40 +0000 (01:11 +0000)]
ioctl.c: fix typo in decoding of EVIOCSABS's parameter

* ioctl.c (evdev_decode_number): Fix typo in printxval default value.

8 years agotests: check decoding of btrfs RDWR ioctls returned data
Jeff Mahoney [Fri, 27 May 2016 03:33:06 +0000 (23:33 -0400)]
tests: check decoding of btrfs RDWR ioctls returned data

* tests/btrfs-vw.test: New file.
* tests/btrfs-w.test: New file.
* tests/Makefile.am (DECODER_TESTS): Add them.

8 years agotests/btrfs.c: fix live btrfs_test_search_ioctls output
Jeff Mahoney [Fri, 27 May 2016 03:33:05 +0000 (23:33 -0400)]
tests/btrfs.c: fix live btrfs_test_search_ioctls output

* tests/btrfs.c (btrfs_test_search_ioctls): Use print_tree_search_buf
for BTRFS_IOC_TREE_SEARCH and fix missing whitespace.

8 years agobtrfs.c: don't use print_array in btrfs_print_tree_search
Jeff Mahoney [Fri, 27 May 2016 03:33:04 +0000 (23:33 -0400)]
btrfs.c: don't use print_array in btrfs_print_tree_search

* btrfs.c (btrfs_print_tree_search): Don't use print_array.  The buffer
represents a series of variable sized records, not an array.

8 years agobtrfs.c: fix print_array usage in btrfs_print_logical_ino_container
Jeff Mahoney [Fri, 27 May 2016 03:33:03 +0000 (23:33 -0400)]
btrfs.c: fix print_array usage in btrfs_print_logical_ino_container

* btrfs.c: (btrfs_print_logical_ino_container) Fix the element count
to reflect the number of records rather than the number of items.

8 years agotests/btrfs.c: fix btrfs-v for BTRFS_IOC_TREE_SEARCH
Jeff Mahoney [Thu, 26 May 2016 20:09:28 +0000 (16:09 -0400)]
tests/btrfs.c: fix btrfs-v for BTRFS_IOC_TREE_SEARCH

* tests/btrfs.c (btrfs_test_send_ioctl): Assign key_reference
to search_args for BTRFS_IOC_TREE_SEARCH ioctl tests.

8 years agoFix -yy documentation
Fabien Siron [Thu, 26 May 2016 15:29:41 +0000 (15:29 +0000)]
Fix -yy documentation

* strace.c (usage): Fix description of -yy option.
* strace.1: Likewise.

8 years agotests/ioctl_block.c: tweak magic constants to make the test more reliable
Dmitry V. Levin [Thu, 26 May 2016 15:16:31 +0000 (15:16 +0000)]
tests/ioctl_block.c: tweak magic constants to make the test more reliable

* tests/ioctl_block.c (main): Change bad pointer to make
its lower 32-bit part closer to -1U.

8 years agotests/btrfs.c: check basic decoding of read-only ioctls
Dmitry V. Levin [Thu, 26 May 2016 14:26:15 +0000 (14:26 +0000)]
tests/btrfs.c: check basic decoding of read-only ioctls

* tests/btrfs.c (btrfs_test_read_ioctls): New function.
(main): Use it.

8 years agotests: check decoding of BLK* ioctls
Dmitry V. Levin [Thu, 26 May 2016 12:55:41 +0000 (12:55 +0000)]
tests: check decoding of BLK* ioctls

* configure.ac (AC_CHECK_TYPES): Add struct blk_user_trace_setup.
* tests/ioctl_block.c: New file.
* tests/ioctl_block.test: New test.
* tests/.gitignore: Add ioctl_block.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add ioctl_block.test.

8 years agoMpersify BLK* ioctl parser
Dmitry V. Levin [Thu, 26 May 2016 10:43:51 +0000 (10:43 +0000)]
Mpersify BLK* ioctl parser

* defs.h (block_ioctl): Remove.
* block.c: Mpersify struct blk_user_trace_setup,
struct blkpg_ioctl_arg, struct blkpg_partition, and ioctl numbers.
(block_ioctl): Mpersify.
* NEWS: Mention this enhancement.

8 years agoblock.c: optimize decoding of paired ioctls
Dmitry V. Levin [Thu, 26 May 2016 12:36:56 +0000 (12:36 +0000)]
block.c: optimize decoding of paired ioctls

* block.c (block_ioctl): Optimize decoding of commands that return
a signed int.

8 years agoblock.c: fix printing of uint64_t pairs
Dmitry V. Levin [Thu, 26 May 2016 12:33:21 +0000 (12:33 +0000)]
block.c: fix printing of uint64_t pairs

* block.c (block_ioctl): Print uint64_t values using PRIu64 format.

8 years agoblock.c: fix printing of struct blk_user_trace_setup
Dmitry V. Levin [Thu, 26 May 2016 10:04:39 +0000 (10:04 +0000)]
block.c: fix printing of struct blk_user_trace_setup

* block.c (block_ioctl): Fix printing of comma before
struct blk_user_trace_setup.name on exiting syscall.

8 years agoMove parser of 'X' type ioctls to a separate file
Dmitry V. Levin [Thu, 26 May 2016 00:37:26 +0000 (00:37 +0000)]
Move parser of 'X' type ioctls to a separate file

* fs_x_ioctl.c: New file.
* Makefile.am (strace_SOURCES): Add it.
* block.c: (block_ioctl): Move parser of FITRIM, FIFREEZE, and FITHAW
to fs_x_ioctl.c.
* defs.h (fs_x_ioctl): New prototype.
* ioctl.c (ioctl_decode): Call fs_x_ioctl for ioctl type 'X'.

8 years agoMove parser of HDIO_* ioctls to a separate file
Dmitry V. Levin [Thu, 26 May 2016 00:07:17 +0000 (00:07 +0000)]
Move parser of HDIO_* ioctls to a separate file

* hdio.c: New file.
* Makefile.am (strace_SOURCES): Add it.
* block.c: Do not include <linux/hdreg.h>.
(block_ioctl): Move parser of HDIO_GETGEO to hdio.c.
* defs.h (hdio_ioctl): New prototype.
* ioctl.c (ioctl_decode): Call hdio_ioctl for ioctl type 0x03.

8 years agoFix explicit casts of signed integer types to unsigned long long
Dmitry V. Levin [Thu, 26 May 2016 10:12:17 +0000 (10:12 +0000)]
Fix explicit casts of signed integer types to unsigned long long

* defs.h (widen_to_ull): New macro.
* dirent.c (print_old_dirent, SYS_FUNC(getdents)): Use it in place
of explicit casts to unsigned long long.
* io.c (print_lld_from_low_high_val): Likewise.
* lseek.c (SYS_FUNC(llseek)): Likewise.
* printsiginfo.c (print_si_info): Likewise.
* printstat.h (DO_PRINTSTAT): Likewise.
* sysinfo.c (SYS_FUNC(sysinfo)): Likewise.
* times.c (SYS_FUNC(times)): Likewise.
* fetch_struct_statfs.c (ASSIGN_NUMBER): Remove.
(fetch_struct_statfs, fetch_struct_statfs64): Replace ASSIGN_NUMBER
with widen_to_ull.

8 years agoscsi.c: print __u64 types using PRI__u64 format
Dmitry V. Levin [Thu, 26 May 2016 10:07:36 +0000 (10:07 +0000)]
scsi.c: print __u64 types using PRI__u64 format

* scsi.c (print_sg_io_v4_req, print_sg_io_v4_res): Remove explicit casts
to unsigned long long, print fields of type __u64 using PRI__u64 format.

8 years agotests: check decoding of RTC_* ioctls
Dmitry V. Levin [Wed, 25 May 2016 15:44:32 +0000 (15:44 +0000)]
tests: check decoding of RTC_* ioctls

* configure.ac (AC_CHECK_FUNCS): Add ioctl_rtc.
* tests/ioctl_rtc.c: New file.
* tests/ioctl_rtc-v.c: Likewise.
* tests/ioctl_rtc.test: New test.
* tests/ioctl_rtc-v.test: Likewise.
* tests/.gitignore: Add ioctl_rtc and ioctl_rtc-v.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(DECODER_TESTS): Add ioctl_rtc.test and ioctl_rtc-v.test.

8 years agoMpersify RTC_* ioctl parser
Dmitry V. Levin [Wed, 25 May 2016 15:59:27 +0000 (15:59 +0000)]
Mpersify RTC_* ioctl parser

* defs.h (rtc_ioctl): Remove.
* rtc.c: Mpersify struct rtc_pll_info and ioctl numbers.
(rtc_ioctl): Mpersify.
* NEWS: Mention this enhancement.

8 years agortc.c: fix decoding of struct rtc_wkalrm
Dmitry V. Levin [Wed, 25 May 2016 15:28:23 +0000 (15:28 +0000)]
rtc.c: fix decoding of struct rtc_wkalrm

* rtc.c (decode_rtc_wkalrm): Print field name of struct rtc_wkalrm.time.

8 years agofile_ioctl.c: print file descriptors using printfd
Dmitry V. Levin [Wed, 25 May 2016 07:59:13 +0000 (07:59 +0000)]
file_ioctl.c: print file descriptors using printfd

* file_ioctl.c (print_file_dedupe_range_info): Print
struct file_dedupe_range_info.dest_fd using printfd.
(file_ioctl): Print struct file_clone_range.src_fd using printfd.

8 years agortc.c: do not print argument of ioctls that have no arguments
Dmitry V. Levin [Wed, 25 May 2016 07:44:19 +0000 (07:44 +0000)]
rtc.c: do not print argument of ioctls that have no arguments

* rtc.c (rtc_ioctl): Do not print argument of RTC_{A,U,P,W}IE_{ON,OFF}
and RTC_VL_CLR ioctls.

8 years agortc.c: decode RTC_PLL_GET and RTC_PLL_SET
Dmitry V. Levin [Wed, 25 May 2016 07:43:15 +0000 (07:43 +0000)]
rtc.c: decode RTC_PLL_GET and RTC_PLL_SET

* rtc.c (rtc_ioctl): Decode RTC_PLL_GET and RTC_PLL_SET

8 years agortc.c: optimize decoding of paired ioctls
Dmitry V. Levin [Wed, 25 May 2016 07:37:44 +0000 (07:37 +0000)]
rtc.c: optimize decoding of paired ioctls

* rtc.c (rtc_ioctl): Optimize decoding of RTC_ALM_READ/RTC_ALM_SET,
RTC_RD_TIME/RTC_SET_TIME, and RTC_WKALM_RD/RTC_WKALM_SET ioctl pairs.

8 years agoblock.c: handle BLKDAXGET
Dmitry V. Levin [Wed, 25 May 2016 07:33:02 +0000 (07:33 +0000)]
block.c: handle BLKDAXGET

* block.c [!BLKDAXGET] (BLKDAXGET): Define.
(block_ioctl): Handle it.