summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* tests: add ioctl_rtc-success* testsesyr/rtc-successEugene Syromyatnikov2022-05-3112-1/+419
| | | | | | | | | | | | | | | | | | | | * tests/.gitignore: Add ioctl_rtc-success, ioctl_rtc-success-Xabbrev, ioctl_rtc-success-Xraw, ioctl_rtc-success-Xverbose, ioctl_rtc-success-v, ioctl_rtc-success-v-Xabbrev, ioctl_rtc-success-v-Xraw, ioctl_rtc-success-v-Xverbose. * tests/Makefile.am (check_PROGRAMS): Likewise. * tests/gen_tests.in: Add ioctl_rtc-success, ioctl_rtc-success-Xabbrev, ioctl_rtc-success-Xraw, ioctl_rtc-success-Xverbose, ioctl_rtc-success-v, ioctl_rtc-success-v-Xabbrev, ioctl_rtc-success-v-Xraw, ioctl_rtc-success-v-Xverbose tests. * tests/ioctl_rtc-success-Xabbrev.c: New file. * tests/ioctl_rtc-success-Xraw.c: Likewise. * tests/ioctl_rtc-success-Xverbose.c: Likewise. * tests/ioctl_rtc-success-v-Xabbrev.c: Likewise. * tests/ioctl_rtc-success-v-Xraw.c: Likewise. * tests/ioctl_rtc-success-v-Xverbose.c: Likewise. * tests/ioctl_rtc-success-v.c: Likewise. * tests/ioctl_rtc-success.c: Likewise.
* tests: support both old and new landlock pseudopathEugene Syromyatnikov2022-05-272-2/+33
| | | | | | | | | | | | | | | | Since the ABI of landlock ruleset file name has been broken by Linux commit v5.18-rc1~88^2, the landlock_create_ruleset-y now has to account for both new and old possible names. Opt for checking the link value in the test instead. * tests/landlock_create_ruleset-y.c (FD_PATH): Remove. (DECODE_FD): New macro. * tests/landlock_create_ruleset.c: Include "xmalloc.h" and <stdlib.h>. [!DECODE_FD] (DECODE_FD): New macro. (main) <fd_str>: New variable. [DECODE_FD] (main): Check the link path of the fd returned by the landlock_create_ruleset call and set it to fd_str, which is then printed.
* landlock: update expected stringBruce Ashfield2022-05-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Test failures were picked up in the yocto 5.15.36 -stable testing. Kernel commit: commit 3d4b396a616d0d67bf95d6823ad1197f6247292e Author: Christian Brauner <christian.brauner@ubuntu.com> Date: Mon Oct 11 15:37:04 2021 +0200 landlock: Use square brackets around "landlock-ruleset" commit aea0b9f2486da8497f35c7114b764bf55e17c7ea upstream. Make the name of the anon inode fd "[landlock-ruleset]" instead of "landlock-ruleset". This is minor but most anon inode fds already carry square brackets around their name: [eventfd] [eventpoll] [fanotify] [fscontext] [io_uring] [pidfd] [signalfd] [timerfd] [userfaultfd] For the sake of consistency lets do the same for the landlock-ruleset anon inode fd that comes with landlock. We did the same in 1cdc415f1083 ("uapi, fsopen: use square brackets around "fscontext" [ver #2]") for the new mount api. Cc: linux-security-module@vger.kernel.org Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com> Link: https://lore.kernel.org/r/20211011133704.1704369-1-brauner@kernel.org Cc: stable@vger.kernel.org Signed-off-by: Mickaël Salaün <mic@linux.microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Changed the format of the landlock ruleset. We need to update the strace expected string to match. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* bpf: improve bpf(BPF_LINK_CREATE) decodingEugene Syromyatnikov2022-05-265-13/+458
| | | | | | | | | | | | | | | | | | | | | | union bpf_attr.link_create got a couple of new fields; this patch attempts to decode it based on the attach_type field value, which is imprecise, but the next best thing without information about the type of prog_fd. * src/xlat/bpf_link_create_kprobe_multi_flags.in: New file. * src/gen_bpf_attr_check.sh: Ignore anonymous union fields; * src/bpf_attr.h (BPF_LINK_CREATE_struct): Add target_btf_id, iter_info, iter_info_len, perf_event.bpf_cookie, kprobe_multi.flags, kprobe_multi.cnt, kprobe_multi.syms, kprobe_multi.addrs, kprobe_multi.cookies fields. (expected_BPF_LINK_CREATE_struct_size): Change to 48. * src/bpf.c: Include "xlat/bpf_link_create_kprobe_multi_flags.h". (BEGIN_BPF_CMD_DECODER): Remove const qualifier from attr_size definition. (union strace_bpf_iter_link_info): New type definition. (print_iter_info_array_member, print_str_array_member): New functions. (BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)): Decode new fields. * tests/bpf.c: Add new checks.
* tests/bpf: add ability to define multi-iterational checksEugene Syromyatnikov2022-05-261-38/+49
| | | | | | | | | | | | | | | | | | | | | For checks that have only single field changed, repeating the whole check boilerplate seems excessive; let's add ability to iterate a single check multiple times, by virtue of supplying iteration number to init/print handlers. * tests/bpf.c (struct bpf_attr_check): Add iters field; add idx parameter to init_fn and print_fn field types. (print_bpf_attr): Add idx parameter, pass it to check->print_fn. (test_bpf): Declare j iteration variable; iterate each check MAX(check->iters, 1) times, pass j to check->init_fn and print_bpf_attr calls. (init_BPF_MAP_CREATE_attr7, init_BPF_PROG_LOAD_attr3, print_BPF_PROG_LOAD_attr3, init_BPF_PROG_LOAD_attr4, print_BPF_PROG_LOAD_attr4, init_BPF_OBJ_PIN_attr, init_BPF_PROG_QUERY_attr4, print_BPF_PROG_QUERY_attr4, init_BPF_PROG_QUERY_attr5, print_BPF_PROG_QUERY_attr5, init_BPF_RAW_TRACEPOINT_attr2, init_BPF_BTF_LOAD_attr): Add idx parameter.
* bpf: fix next_id decoding for BPF_*_GET_NEXT_IDEugene Syromyatnikov2022-05-262-4/+19
| | | | | | | | | It is an R/W attribute and is supposed to be handled as such. * src/bpf.c (BEGIN_BPF_CMD_DECODER(BPF_PROG_GET_NEXT_ID)): Store next_id field value on entering, print the new value (if it has been modified) on exiting. * NEWS: Mention it.
* bpf: provide approximate local time for prog_info.load_timeEugene Syromyatnikov2022-05-263-2/+69
| | | | | | | | | | | It is stored as CLOCK_BOOTTIME value that gives little insight into the actual time a program has been loaded otherwise. * src/bpf.c [XLAT_MACROS_ONLY]: Include "xlat/clocknames.h". (print_boottime): New function. (print_bpf_prog_info): Call it. * tests/bpf-obj_get_info_by_fd.c: Update expected output. * NEWS: Mention it.
* tests/bpf: make sizeof_attr constEugene Syromyatnikov2022-05-251-1/+1
| | | | | | No one is supposed to change it. * tests/bpf.c (sizeof_attr): Add const qualifier.
* xlat: add BPF_TRACE_KPROBE_MULTI to bpf_attach_typeEugene Syromyatnikov2022-05-253-6/+7
| | | | | | | * src/xlat/bpf_attach_type.in (BPF_TRACE_KPROBE_MULTI): New constant, introduced by Linux commit v5.18-rc1~136^2~11^2~28^2~10. * tests/bpf.c (BPF_PROG_QUERY_checks): Update expected output. * NEWS: Mention this.
* bpf: add support for the batch_size field of BPF_PROG_TEST_RUN commandEugene Syromyatnikov2022-05-254-9/+75
| | | | | | | | | | | | | | | | Introduced by Linux commit v5.18-rc1~136^2~11^2~58^2~4, along with the BPF_F_TEST_XDP_LIVE_FRAMES flag. * src/bpf_attr.h (BPF_PROG_TEST_RUN_struct): Add batch_size field. (BPF_PROG_TEST_RUN_struct_size): Use the offset of batch_size field end for definition. (expected_BPF_PROG_TEST_RUN_struct_size): Change from 72 to 76. * src/bpf.c (BEGIN_BPF_CMD_DECODER(BPF_PROG_TEST_RUN)): Fix "The following two fields were introduced in Linux commit v5.10-rc1~107^2~96^2~36" comment formatting, decode the batch_size field. * src/xlat/bpf_test_run_flags.in (BPF_F_TEST_XDP_LIVE_FRAMES): New constant. * tests/bpf.c (BPF_PROG_TEST_RUN_checks): Update checks.
* Update ioctl entries from linux v5.18Gleb Fotengauer-Malinovskiy2022-05-218-82/+120
| | | | | | | | | | | | * src/linux/32/ioctls_inc_align16.h: Update from linux v5.18-rc7 using ioctls_gen.sh. * src/linux/32/ioctls_inc_align32.h: Likewise. * src/linux/32/ioctls_inc_align64.h: Likewise. * src/linux/64/ioctls_inc.h: Likewise. * src/linux/x32/ioctls_inc0.h: Likewise. * src/linux/i386/ioctls_arch0.h: Likewise. * src/linux/x86_64/ioctls_arch0.h: Likewise. * NEWS: Mention this.
* xlat: update KVM_* constantsEugene Syromyatnikov2022-05-022-1/+4
| | | | | | | | | | | * src/xlat/kvm_cap.in (KVM_CAP_S390_MEM_OP_EXTENSION): New constant, introduced by Linux commit v5.18-rc1~10^2~52^2~11 and getting its present value in commit v5.18-rc1~10^2~131. (KVM_CAP_PMU_CAPABILITY): New constant, introduced by Linux commit v5.18-rc1~10^2~124. (KVM_CAP_DISABLE_QUIRKS2): New constant, introduced by Linux commit v5.18-rc1~10^2~43. * NEWS: Mention this.
* xlat: update UFFD_* constantsEugene Syromyatnikov2022-05-022-1/+2
| | | | | | * src/xlat/uffd_api_features.in (UFFD_FEATURE_EXACT_ADDRESS): New constant, introduced by Linux commit v5.18-rc1~168^2~89. * NEWS: Mention this.
* xlat: update IORING_* constantsEugene Syromyatnikov2022-05-028-15/+21
| | | | | | | | | | | | | | | * src/xlat/uring_enter_flags.in (IORING_ENTER_REGISTERED_RING): New constant, introduced by Linux commit v5.18-rc1~22^2~44. * src/xlat/uring_ops.in (IORING_OP_MSG_RING): New constant, introduced by Linux commit v5.18-rc1~22^2~42. * src/xlat/uring_setup_features.in (IORING_FEAT_LINKED_FILE): New constant, introduced by Linux commit v5.18-rc3~17^2~12. * src/xlat/uring_setup_flags.in (IORING_SETUP_SUBMIT_ALL): New constant, introduced by Linux commit v5.18-rc1~22^2~36. * tests/io_uring_enter.c: Update expected output. * tests/io_uring_register.c: Likewise. * tests/io_uring_setup.c: Likewise. * NEWS: Mention this.
* io_uring: decode IORING_{,UN}REGISTER_RING_FDS io_uring_register operationsEugene Syromyatnikov2022-05-024-3/+184
| | | | | | | | | | | | | | | | * src/xlat/uring_register_opcodes.in (IORING_REGISTER_RING_FDS, IORING_UNREGISTER_RING_FDS): New constants, introduced by Linux commit v5.18-rc1~22^2~44. * src/io_uring.c (print_ringfd_register_array_member, print_io_uring_ringfds_register, print_ringfd_unregister_array_member, print_io_uring_ringfds_unregister): New functions. (SYS_FUNC(io_uring_register)) <case IORING_REGISTER_RING_FDS>: New case, call print_io_uring_ringfds_register. (SYS_FUNC(io_uring_register)) <case IORING_UNREGISTER_RING_FDS>: New case, call print_io_uring_ringfds_unregister. * tests/io_uring_register.c: Update expected output, add checks for IORING_REGISTER_RING_FDS and IORING_UNREGISTER_RING_FDS ops decoding. * NEWS: Mention this.
* tests: introduce TAIL_ALLOC_OBJECT_{CONST,VAR}_ARREugene Syromyatnikov2022-05-021-0/+16
| | | | | * tests/tests.h (TAIL_ALLOC_OBJECT_CONST_ARR, TAIL_ALLOC_OBJECT_VAR_ARR): New macros.
* xlat: update KEY_* constantsEugene Syromyatnikov2022-04-292-1/+19
| | | | | | | | | | * src/xlat/evdev_keycode.in (KEY_NEXT_ELEMENT, KEY_PREVIOUS_ELEMENT, KEY_AUTOPILOT_ENGAGE_TOGGLE, KEY_MARK_WAYPOINT, KEY_SOS, KEY_NAV_CHART, KEY_FISHING_CHART, KEY_SINGLE_RANGE_RADAR, KEY_DUAL_RANGE_RADAR, KEY_RADAR_OVERLAY, KEY_TRADITIONAL_SONAR, KEY_CLEARVU_SONAR, KEY_SIDEVU_SONAR, KEY_NAV_INFO, KEY_BRIGHTNESS_MENU): New constants, introduced by Linux commit v5.18-rc4~12^2. * NEWS: Mention this.
* xlat: update BR_* constantsDmitry V. Levin2022-04-294-8/+12
| | | | | | | | | * src/xlat/rtnl_ifla_br_boolopts.in (BR_BOOLOPT_MST_ENABLE): New constant introduced by Linux kernel commit v5.18-rc1~136^2~50^2~14. * src/xlat/rtnl_ifla_br_boolopt_flags.in (1<<BR_BOOLOPT_MST_ENABLE): Likewise. * tests/nlattr_ifla_linkinfo.c (main): Update expected output. * NEWS: Mention this.
* xlat: update IFLA_* constantsDmitry V. Levin2022-04-287-4/+11
| | | | | | | | | | | | | * src/xlat/rtnl_ifla_af_spec_bridge_attrs.in (IFLA_BRIDGE_MST): New constant introduced by Linux kernel commit v5.18-rc1~136^2~50^2~12. * src/xlat/rtnl_ifla_brport_attrs.in (IFLA_BRPORT_LOCKED): New constant introduced by Linux kernel commit v5.18-rc1~136^2~267^2~4. * src/rtnl_link.c (ifla_brport_nla_decoders): Add IFLA_BRPORT_LOCKED. (ifla_af_spec_bridge_nla_decoders): Add IFLA_BRIDGE_MST. * tests/nlattr_ifla_af_spec.c (main): Update expected output. * tests/nlattr_ifla_brport.c: Likewise. * tests/nlattr_ifla_linkinfo.c: Likewise. * NEWS: Mention this.
* xlat: update IFA_* constantsDmitry V. Levin2022-04-272-1/+2
| | | | | | * src/xlat/rtnl_addr_attrs.in (IFA_PROTO): New constant introduced by Linux kernel commit v5.18-rc1~136^2~308. * NEWS: Mention this.
* xlat: update BTRFS_* constantsDmitry V. Levin2022-04-263-1/+3
| | | | | | | | | * src/xlat/btrfs_features_incompat.in (BTRFS_FEATURE_INCOMPAT_EXTENT_TREE_V2): New constant introduced by Linux kernel commit v5.18-rc1~172^2~73. * src/xlat/btrfs_tree_objectids.in (BTRFS_BLOCK_GROUP_TREE_OBJECTID): New constant introduced by Linux kernel commit v5.18-rc1~172^2~64. * NEWS: Mention this.
* xlat: update MADV_* constantsDmitry V. Levin2022-04-252-0/+3
| | | | | | * src/xlat/madvise_cmds.in (MADV_DONTNEED_LOCKED): New constant introduced by Linux kernel commit v5.18-rc1~120^2~1. * NEWS: Mention this.
* bundled: update linux UAPI headers to v5.18-rc4Dmitry V. Levin2022-04-2422-26/+361
| | | | | | | | | | | | | | | | | | | | | | | | | | * bundled/linux/include/uapi/linux/btrfs.h: Update to headers_install'ed Linux kernel v5.18-rc4. * bundled/linux/include/uapi/linux/btrfs_tree.h: Likewise. * bundled/linux/include/uapi/linux/dm-ioctl.h: Likewise. * bundled/linux/include/uapi/linux/if_addr.h: Likewise. * bundled/linux/include/uapi/linux/if_bridge.h: Likewise. * bundled/linux/include/uapi/linux/if_link.h: Likewise. * bundled/linux/include/uapi/linux/input-event-codes.h: Likewise. * bundled/linux/include/uapi/linux/io_uring.h: Likewise. * bundled/linux/include/uapi/linux/kexec.h: Likewise. * bundled/linux/include/uapi/linux/lirc.h: Likewise. * bundled/linux/include/uapi/linux/loop.h: Likewise. * bundled/linux/include/uapi/linux/mctp.h: Likewise. * bundled/linux/include/uapi/linux/mroute6.h: Likewise. * bundled/linux/include/uapi/linux/netfilter/nfnetlink_queue.h: Likewise. * bundled/linux/include/uapi/linux/perf_event.h: Likewise. * bundled/linux/include/uapi/linux/rtnetlink.h: Likewise. * bundled/linux/include/uapi/linux/socket.h: Likewise. * bundled/linux/include/uapi/linux/types.h: Likewise. * bundled/linux/include/uapi/linux/userfaultfd.h: Likewise. * bundled/linux/include/uapi/linux/v4l2-controls.h: Likewise. * bundled/linux/include/uapi/linux/version.h: Likewise. * bundled/linux/include/uapi/linux/videodev2.h: Likewise.
* Raise strace awarenessEugene Syromyatnikov2022-04-0210-0/+604
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After des Strausses awareness has been raised sufficiently, it is time for den Strauss to raise the awareness about strace, and to do so, the most modern and contemporary method has been elected: displaying tips, tricks and tweaks on each run. * src/strace.c (parse_tips_args): New function. (init) <enum>: Add GETOPT_TIPS. <longopts>: Add "tips" option. (init) <case GETOPT_TIPS>: Call parse_tips_args. (terminate): Call print_totd before exit. (usage): Document --tips. * doc/strace.1.in (.SS Miscellaneous): Ditto. * src/strauss.c (MAX_TIP_LINES): New enum. (tips_tricks_tweaks, tip_top, tip_bottom, tip_left, tip_right): New static constants. (show_tips, tip_id): New variable. (print_totd): New function. * src/strauss.h (tips_fmt, tip_ids): New enumerations. (show_tips, tip_id, print_totd): New declarations. * tests/Makefile.am (MISC_TESTS): Add strace--tips.test, strace--tips-full.test. (EXTRA_DIST): Add strace--tips.exp. * tests/strace--tips-full.test: New test. * tests/strace--tips.test: Ditto. * tests/strace--tips.exp: New file. * tests/options-syntax.test: Add --tips syntax checks. * NEWS: Mention it. Suggested-by: Elvira Khabirova <lineprinter@altlinux.org> References: https://github.com/strace/strace/issues/14
* Add an option for raising Strauss awarenessEugene Syromyatnikov2022-04-0210-11/+176
| | | | | | | | | | | | | | | | | | | | | As der Strauss is the strace's mascot and also an endangered species, it is a strace's responsibility now to raise awareness about it. * src/strauss.c: New file. * src/strauss.h: New header. * src/Makefile.am (strace_SOURCES): Add them. * src/strace.c: Include "strauss.h". (version_verbosity): New static variable. (print_version): Add verbosity argument, call print_strauss. (increase_version_verbosity): New function. (init) <case 'V'>: Call increase_version_verbosity. (init): Call print_version and exit if version_verbosity is non-zero. * tests/strauss_body.exp: New file. * tests/strauss_head.exp: Likewise. * tests/Makefile.am (EXTRA_DIST): Add them. * tests/strace-V.test: Update expected output, add checks. * strace.1.in: Document it. * NEWS: Mention it.
* strace: explicitly indicate inability to print SELinux contextsEugene Syromyatnikov2022-04-024-16/+15
| | | | | | | | | | | | | | | Similarly to the way it is done when -k option is specified. * src/filter_qualify.c [!ENABLE_SECONTEXT]: Include "secontext.h". [!ENABLE_SECONTEXT] (qualify_secontext): Define to print diagnostics message and die. [!ENABLE_SECONTEXT] (qual_options): Define "secontext" handler. * src/secontext.h [!ENABLE_SECONTEXT] (qualify_secontext): Declare. * src/strace.c [!ENABLE_SECONTEXT] (init): Define secontext_qual; define GETOPT_QUAL_SECONTEXT; define "secontext" item in longopts; handle GETOPT_QUAL_SECONTEXT option. * tests/options-syntax.test: Add checks for the case $compiled_with_secontext is empty.
* xtensa: fix register access using PTRACE_GETREGS APIMax Filippov2022-03-284-7/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The commit 2429c69961e2 ("xtensa: switch to PTRACE_GETREGS API") changed the way xtensa registers are accessed, but the change is only correct in case when the xtensa_regs.windowbase is 0 (i.e. the current register window starts at the physical registr 0). In other cases decoded syscall arguments are bogus. This issue is currently observed on noMMU xtensa linux because it uses PTRACE_GETREGS API, while configurations with MMU default to using ptrace_get_syscall_info. Fix that by taking xtensa_registers.windowbase into an account. This is trivial for the first 4 registers in the current window, because windowbase indicates 4-register groups and is always valid, so registers a0...a3 are guaranteed to be available in the physical registers array at indices windowbase * 4 + 0...3. Position of the registers with higher numbers may wrap around the end of the physical register file, so e.g. with 32 physical resgisters and windowbase = 7 the register a5 is stored in the xtensa_registers.a[1]. This is further complicated by the fact that the size of the physical register file may vary and there's no explicit way to inquire it from the kernel. Probe for it by trying to set windowbase to ascending powers of 2 until it fails. * src/linux/xtensa/arch_regs.c (ARCH_SP_REG): Account for xtensa_regs.windowbase in xtensa_regs.a indexing. * src/linux/xtensa/get_error.c (arch_get_error): New variable status_reg that accounts for xtensa_regs.windowbase, use it for xtensa_regs.a indexing. * src/linux/xtensa/get_syscall_args.c (xtensa_probe_naregs): New function. (arch_get_syscall_args): New variable naregs_mask, initialize it using xtensa_probe_naregs, use it for xtensa_regs.a indexing. * src/linux/xtensa/set_error.c (arch_set_error) (arch_set_success): Account for xtensa_regs.windowbase in xtensa_regs.a indexing. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
* tests: fix build on systems where <signal.h> does not define SEGV_PKUERRDmitry V. Levin2022-03-271-1/+1
| | | | | | | | | * tests/ptrace.c (main) [HAVE_SIGINFO_T_SI_PKEY]: Conditionalize on SEGV_PKUERR as well. Reported-by: Andreas Schwab <schwab@linux-m68k.org> Fixes: v5.17~18 "tests: check decoding of SEGV_PKUERR" References: https://github.com/strace/strace/commit/beed7451b02c7c63c6199ac6b027beca7eef097f#commitcomment-69643079
* Post-release administriviaDmitry V. Levin2022-03-273-0/+16
| | | | | | * NEWS: Add a header line for the next release. * debian/changelog.in: Add a changelog entry for 5.17-1. * strace.spec.in: Likewise.
* Prepare for 5.17 releasev5.17Dmitry V. Levin2022-03-261-3/+1
| | | | * NEWS: Update for 5.17 release.
* Update copyright headersDmitry V. Levin2022-03-2633-32/+33
| | | | | Headers updated automatically using maint/update_copyright_years.sh script.
* Decode set_mempolicy_home_node syscallEugene Syromyatnikov2022-03-247-0/+84
| | | | | | | | | | | | | Introduced by Linux commits v5.17-rc1~79^2~49 and v5.17-rc1~79^2~48. * src/linux/generic/syscallent-common.h ([BASE_NR + 450]): Add set_mempolicy_home_node syscall entry. * src/numa.c (SYS_FUNC(set_mempolicy_home_node)): New syscall decoder. * tests/.gitignore: Add set_mempolicy_home_node. * tests/pure_executables.list: Likewise. * tests/set_mempolicy_home_node.c: New file. * tests/gen_tests.in (set_mempolicy_home_node): New test. * NEWS: Mention it.
* printpidfd: print pidfd path if pidfd_get_pid failsDmitry V. Levin2022-03-131-9/+11
| | | | | | * src/util.c (printpidfd): If the path associated with the given descriptor is "anon_inode:[pidfd]", print the path if pidfd_get_pid fails.
* printsocket: print socket path if get_sockaddr_by_inode failsDmitry V. Levin2022-03-121-5/+2
| | | | | | * src/util.c (printsocket): If the path associated with the given descriptor has a form of "socket:[inode]", print the path if get_sockaddr_by_inode fails.
* util: introduce get_inode_of_socket_pathDmitry V. Levin2022-03-121-19/+24
| | | | | * src/util.c (get_inode_of_socket_path): New function. (getfdinode, printsocket): Use it.
* util: introduce print_string_in_angle_bracketsDmitry V. Levin2022-03-121-3/+9
| | | | | * src/util.c (print_string_in_angle_brackets): New function. (printsocket): Use it.
* tests: fix a typo in tests.hMasatake YAMATO2022-03-101-1/+1
| | | | | | | | * tests/tests.h (error_msg_and_fail): Fix the condition wrapping the definition. Signed-off-by: Masatake YAMATO <yamato@redhat.com> Fixes: v4.21~95 "tests: add file:line to perror_msg_and_fail/error_msg_and_fail output"
* xlat: update KEY_* constantsDmitry V. Levin2022-03-063-4/+7
| | | | | | | | | | * bundled/linux/include/uapi/linux/input-event-codes.h: Update to headers_install'ed Linux kernel v5.17-rc7. * src/xlat/evdev_keycode.in (KEY_DASHBOARD): Rename to KEY_ALL_APPLICATIONS introduced by Linux kernel commit v5.17-rc7~5^2. (KEY_DICTATE): New constant introduced by Linux kernel commit v5.17-rc7~5^2~1. * NEWS: Mention this change.
* xlat: update KVM_* constantsDmitry V. Levin2022-03-051-0/+1
| | | | | * src/xlat/kvm_cap.in (KVM_CAP_PPC_AIL_MODE_3): New constant introduced by Linux kernel commit v5.17-rc6~27^2~2^2.
* Update ioctl entries from linux v5.17Gleb Fotengauer-Malinovskiy2022-02-248-5/+133
| | | | | | | | | | | | * src/linux/32/ioctls_inc_align16.h: Update from linux v5.17-rc5 using ioctls_gen.sh. * src/linux/32/ioctls_inc_align32.h: Likewise. * src/linux/32/ioctls_inc_align64.h: Likewise. * src/linux/64/ioctls_inc.h: Likewise. * src/linux/x32/ioctls_inc0.h: Likewise. * src/linux/i386/ioctls_arch0.h: Likewise. * src/linux/x86_64/ioctls_arch0.h: Likewise. * NEWS: Mention this.
* maint: update for linux v5.17-rc5Gleb Fotengauer-Malinovskiy2022-02-241-1/+1
| | | | * maint/ioctls_sym.sh (x86_list): Add KVM_GET_XSAVE2 ioctl.
* Add lirc ioctl decodingSean Young2022-02-1215-0/+548
| | | | | | | | | | | | | | | | | | | | | | * NEWS: Mention this change. * bundled/linux/include/uapi/linux/lirc.h: New file. * bundled/Makefile.am (EXTRA_DIST): Add it. * src/lirc_ioctl.c: New file. * src/Makefile.am (libstrace_a_SOURCES): Add it. * src/defs.h (DECL_IOCTL(lirc)): New declaration. * src/ioctl.c (ioctl_decode) <case 'i'>: Call kd_ioctl. * src/xlat/lirc_features.in: New file. * src/xlat/lirc_modes.in: Likewise. * tests/ioctl_lirc.c: New file. * tests/ioctl_lirc-success.c: Likewise. * tests/Makefile.am (check_PROGRAMS): Add ioctl_lirc-success. * tests/gen_tests.in (ioctl_lirc, ioctl_lirc-success): New tests. * tests/pure_executables.list: Add ioctl_lirc. * tests/.gitignore: Add ioctl_lirc and ioctl_lirc-success. Reviewed-by: Eugene Syromyatnikov <evgsyr@gmail.com> Signed-off-by: Sean Young <sean@mess.org> Reviewed-by: Dmitry V. Levin <ldv@strace.io>
* tests: use ATTRIBUTE_FORMAT for static functions, tooDmitry V. Levin2022-02-081-3/+3
| | | | | * tests/keyctl.c (append_str): Add ATTRIBUTE_FORMAT. (kckdfp_to_str): Fix -Wformat warning.
* error_prints: use ATTRIBUTE_FORMAT for static functions, tooDmitry V. Levin2022-02-081-6/+9
| | | | * src/error_prints.c (verror_msg): Add ATTRIBUTE_FORMAT.
* bundled: update linux/version.hDmitry V. Levin2022-02-081-2/+2
| | | | | | | * bundled/linux/include/uapi/linux/version.h: Update to headers_install'ed Linux kernel v5.17-rc2. Fixes: v5.16-39-g19b787bbf "bundled: update linux UAPI headers to v5.17-rc2"
* tests: add missing <stdint.h> in fanotify_mark.cJonathan Borne2022-02-071-0/+1
| | | | | | | | | | | | | | | With musl libc, fanotify_mark.c compilation fails with 'uintptr_t' undeclared. Following POSIX specification uintptr_t should be defined in <stdint.h>. However, fanotify_mark.c does not include <stdint.h> directly. Instead, it includes <sys/fanotify.h>. With glibc or uclibc-ng, fanotify_mark.c compiles because the provided <sys/fanotify.h> includes <stdint.h>. This is not the case with musl libc. * tests/fanotify_mark.c: Include <stdint.h>. Signed-off-by: Jonathan Borne <jborne@kalray.eu>
* tests: check decoding of SEGV_ACCERRDmitry V. Levin2022-02-044-0/+56
| | | | | | | * tests/segv_accerr.c: New file. * tests/gen_tests.in (segv_accerr): New test. * tests/Makefile.am (check_PROGRAMS): Add segv_accerr. * tests/.gitignore: Likewise.
* tests: check decoding of SEGV_PKUERRDmitry V. Levin2022-02-035-0/+74
| | | | | | | | | * tests/segv_pkuerr.c: New file. * tests/gen_tests.in (segv_pkuerr): New test. * tests/Makefile.am (check_PROGRAMS): Add segv_pkuerr. * tests/.gitignore: Likewise. * tests/ptrace.c (main) [HAVE_SIGINFO_T_SI_PKEY]: Check decoding of SEGV_PKUERR.
* printsiginfo: decode siginfo_t.si_pkey fieldSlava Bacherikov2022-02-023-3/+18
| | | | | | | | | | | This adds decoding of si_pkey field which is set on SIGSEGV in case of memory access violation on some modern CPUs (these have pku flag in /proc/cpuinfo). * NEWS: Mention this change. * configure.ac (AC_CHECK_MEMBERS): Check for siginfo_t.si_pkey. * src/printsiginfo.c (print_si_info) <case SIGSEGV> [HAVE_SIGINFO_T_SI_PKEY]: Decode si_pkey field.
* tests/membarrier: add additional return valueSven Schnelle2022-02-011-0/+8
| | | | | | | | linux commit 809232619f5b ("sched/membarrier: Fix membarrier-rseq fence command missing from query bitmask") changed the returned value, so we need to adjust the strace test as well. Signed-off-by: Sven Schnelle <svens@linux.ibm.com>