Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UBSan seems to be complaining about a float-cast-overflow in json_variant_has_type #15907

Closed
evverx opened this issue May 25, 2020 · 5 comments · Fixed by #15914
Closed

UBSan seems to be complaining about a float-cast-overflow in json_variant_has_type #15907

evverx opened this issue May 25, 2020 · 5 comments · Fixed by #15914
Labels

Comments

@evverx
Copy link
Member

evverx commented May 25, 2020

$ printf '[7E73]' >crash

$ UBSAN_OPTIONS=print_stacktrace=1:print_summary=1:halt_on_error=1 ./out/fuzz-json ./crash

INFO: Seed: 3046474721
INFO: Loaded 2 modules   (136687 inline 8-bit counters): 136668 [0x7f6fca188930, 0x7f6fca1a9f0c), 19 [0x575d60, 0x575d73),
INFO: Loaded 2 PC tables (136687 PCs): 136668 [0x7f6fca1a9f10,0x7f6fca3bfcd0), 19 [0x54fcd0,0x54fe00),
./out/fuzz-json: Running 1 inputs 1 time(s) each.
Running: ./crash
../src/shared/json.c:1144:38: runtime error: 7e+73 is outside the range of representable values of type 'long'
    #0 0x7f6fc97e12ef in json_variant_has_type /home/vagrant/systemd/build/../src/shared/json.c:1144:38
    #1 0x7f6fc97d8dc5 in json_variant_is_normalized /home/vagrant/systemd/build/../src/shared/json.c:4282:41
    #2 0x7f6fc97d7506 in json_variant_new_array /home/vagrant/systemd/build/../src/shared/json.c:543:22
    #3 0x7f6fc97f15ca in json_parse_internal /home/vagrant/systemd/build/../src/shared/json.c:2980:29
    #4 0x7f6fc97f5b6f in json_parse_file_at /home/vagrant/systemd/build/../src/shared/json.c:3188:16
    #5 0x536d8b in json_parse_file /home/vagrant/systemd/build/../src/shared/json.h:205:16
    #6 0x536914 in LLVMFuzzerTestOneInput /home/vagrant/systemd/build/../src/fuzz/fuzz-json.c:21:13
    #7 0x441958 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) (/home/vagrant/systemd/out/fuzz-json+0x441958)
    #8 0x426a75 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) (/home/vagrant/systemd/out/fuzz-json+0x426a75)
    #9 0x42f9b9 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) (/home/vagrant/systemd/out/fuzz-json+0x42f9b9)
    #10 0x41fa16 in main (/home/vagrant/systemd/out/fuzz-json+0x41fa16)
    #11 0x7f6fc8c1b1a2 in __libc_start_main (/lib64/libc.so.6+0x271a2)
    #12 0x41fa6d in _start (/home/vagrant/systemd/out/fuzz-json+0x41fa6d)

SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../src/shared/json.c:1144:38 in

As far as I can see, it seems to be intentional so it would probably make sense to turn this check off there with __attribute__((no_sanitize("float-cast-overflow"))).

evverx added a commit to evverx/systemd that referenced this issue May 25, 2020
@evverx
Copy link
Member Author

evverx commented May 25, 2020

To judge from https://travis-ci.org/github/systemd/systemd It seems to be another UBSan check gcc interprets differently. @jakubjelinek I wonder why gcc wouldn't complain about it?

@evverx
Copy link
Member Author

evverx commented May 25, 2020

Never mind. I passed -fsanitize=float-cast-overflow -fno-sanitize-recover=float-cast-overflow to gcc explicitly and the fuzz target failed as expected. It appears float-cast-overflow is just off by default (that is it isn't turned on by -fsanitize=undefined).

@jakubjelinek
Copy link

Sure, because it is not undefined behavior, see https://gcc.gnu.org/legacy-ml/gcc-patches/2014-05/msg01006.html for details.

@poettering
Copy link
Member

As far as I can see, it seems to be intentional so it would probably make sense to turn this check off there with __attribute__((no_sanitize("float-cast-overflow"))).

Hmm, we already use #pragma GCC diagnostic ignored "-Wfloat-equal" to turn off gcc's warning on this. Would be great if ubsan would just honour that too...

poettering added a commit to poettering/systemd that referenced this issue May 25, 2020
@poettering poettering linked a pull request May 25, 2020 that will close this issue
@poettering
Copy link
Member

Does #15914 fix this?

poettering added a commit to poettering/systemd that referenced this issue May 26, 2020
poettering pushed a commit to poettering/systemd that referenced this issue May 26, 2020
evverx added a commit to evverx/systemd that referenced this issue May 26, 2020
Now that systemd#15907 is gone,
we can simply use "undefined" instead of listing all the possible checks
explicitly.
keszybz pushed a commit that referenced this issue May 27, 2020
Now that #15907 is gone,
we can simply use "undefined" instead of listing all the possible checks
explicitly.
clrpackages pushed a commit to clearlinux-pkgs/systemd that referenced this issue Aug 27, 2020
24bisquitz (1):
      Add a device to 60-sensor.hwdb

Adam Nielsen (1):
      login: allow individual USB ports to be assigned to seats

Alan Perry (1):
      add error message when bind mount src missing

Alexander Malafeev (1):
      Fix volume control keys on Lenovo Yoga S940

Alin Popa (1):
      watchdog: reduce watchdog pings in timeout interval

Alvin Šipraga (1):
      network: add support for MACVLAN source mode

Amitanand.Chikorde (1):
      udev: fix codesonar warnings

Amos Bird (1):
      hwdb: adjust touchpad edge detection for X1Tab3 (#16310)

AndreRH (1):
      hwdb: Add accel orientation quirk for Odys Fusion Win 12 2in1

Andreas Rammhold (5):
      sd-netlink: remove unused RTNL_WQUEUE_MAX define
      in-addr-util: introduce in_addr_prefix_nth
      in-addr-util: removed in_addr_prefix_next implementation
      networkd: Add support for setting a preferred subnet id for IPv6 PD leases
      editorconfig: add man configuration

Andrew Doran (1):
      DHCP client: make SendOption work for DHCPv6 too.

Anita Zhang (7):
      core: transition to FINAL_SIGTERM state after ExecStopPost=
      cgroup-util: helper to cg_get_attribute and convert to uint64_t
      cgroup-util: cg_get_xattr_malloc helper
      core: don't consider SERVICE_SKIP_CONDITION for abnormal or failure restarts
      core: check null_or_empty for masked units instead of /dev/null
      man: fix some manvolnum
      analyze: CAP_RAWIO -> CAP_SYS_RAWIO

Ankit Jain (1):
      journal-send: Fix the limitation of LINE_MAX

Arnaud Ferraris (1):
      login: allow non-console sessions to change vt

Arthur Moraes do Lago (1):
      Add Logitech G502 HERO to mouse hwdb

Arusekk (1):
      Fall back to kexec when no kexec binary exists

Axel Rasmussen (1):
      selinux: handle getcon_raw producing a NULL pointer, despite returning 0

Balaji Punnuru (1):
      util: return the correct correct wd from inotify helpers

Balint Reczey (4):
      units: Don't mount tracefs in LXC
      user-util: Allow names starting with a digit
      shared: Don't try calling NULL callback in bus_wait_for_units_clear
      test: Skip test-boot-timestamps on permission denied

Bastien Nocera (1):
      hwdb: Force "mouse" type on Logitech Ultrathin Touch Mouse

Benjamin Berg (16):
      core: Move environment generator path lookup into path-lookup.c
      path-lookup: Split out helper to get paths from environment
      path-lookup: Allow setting generator paths via environment
      test: Add test for setting generator paths via environment
      man: Add documentation for generator path environment variables
      core: Fix resolution of nested DM devices for cgroups
      docs: Add some notes about managing graphical user sessions
      docs: Change prefix for desktop applications to app-
      sysv-generator: Downgrade directory listing fails to warning
      xdg-autostart-generator: Add a generator for XDG autostart files
      man: Add systemd-xdg-autostart-generator man page
      test: Add test for XDG desktop file parsing and interpretation
      fuzz: Add an XDG desktop file fuzzer
      xdg-autostart: Fix info message if Type= is not Application
      xdg-autostart: Ignore all files with GNOME autostart phase
      docs: Update section about XDG autostart generator

Benjamin Dahlhoff (2):
      Added Chuwi Hibook Pro (Model: CWI526) (#15770)
      added alternative version of SurfTab Twin

Benjamin Robin (18):
      tree-wide: Mark as _unused_ variables that are only used in assert()
      tree-wide: Fix, replace assert() by assert_se() when there is side effect
      test: Use assert_se() where variables are only checked by assert
      resize-fs: Use xsprintf instead of snprintf
      meson: Do not drop warnings (unused variable) when NDEBUG is defined
      tree-wide: Workaround -Wnonnull GCC bug
      tree-wide: Replace assert() by assert_se() when there is side effect
      basic: Allow to call STRV_FOREACH_BACKWARDS() with a char * const * strv
      core: Update prototype of notify_message, tags list is read only
      journald: Increase stdout buffer size sooner, when almost full
      test: Add a test case for #15654
      test: Stricter test case for #15654 (Add more checks)
      core: Parse the tags list sooner, and use it for multiple function
      netlink: Fix assert condition on n_containers
      tree-wide: Initialize _cleanup_ variables if needed
      network: 'cur' variable cannot be null, so simplify code
      systemctl: Check clean_or_freeze_unit(): Add assert if unknown method
      test: Add return 0 to main() function (even it is not strictly necessary)

Chris Down (5):
      virt: Detect proot virtualisation by ptrace metadata
      virt: Use cache for VIRTUALIZATION_PROOT
      man: systemd.service: systemd-analyze exit-codes -> exit-status
      service: Display updated WatchdogUSec from sd_notify
      doc: Try to clarify automount dependency confusion

Chris Kerr (1):
      man: Fix typo in suggested permissions

Christian Göttsche (18):
      selinux: add trigger for policy reload to refresh internal selabel cache
      selinux: cache enforced status and treat retrieve failure as enforced mode
      selinux: delay mac_selinux_enforcing call after SELinux was determined to be enabled
      selinux: add unlikely compiler hints for cache functions
      selinux: add debug logging to cache functions
      selinux: print enforcing state in access check debug message
      selinux: add parenthesis to function names in log messages
      Initialize SELinux in user instances
      Make failures of mac_selinux_init() fatal
      selinux: update mac_selinux_free()
      selinux: check mac_selinux_init() in tests
      basic: add helper function mknod_label()
      selinux: create standard user-runtime nodes with default context
      namespace: fix MAC labels of TemporaryFileSystem=
      shared: fix error handling in make_inaccessible_nodes
      namespace: unify logging in mount_tmpfs
      network: fix typo
      Fix clang-11 issues

Christian Hesse (1):
      shared/ask-password-api: do not show hint on echo

Christian Oder (1):
      hwdb: Add accel orientation quirk for Chuwi Hi10 X

Ciprian Hacman (1):
      Support journal-upload HTTPS without key and certificate

Clinton Roy (1):
      NEWS: grammar improvements (#16413)

Corey Hinshaw (1):
      Add SetType method to login Session interface

Daan De Meyer (89):
      sd-bus: Add sd_bus_set_fd documentation along with some cleanups.
      sd-bus: Remove unused man cite of `sd_bus_slot_new_signal`.
      sd-bus: Add sd_bus_method_call/sd_bus_method_call_async docs + cleanups.
      sd-bus: sd_bus_call/sd_bus_call_async_docs + cleanups.
      sd-bus: sd_bus_set/get_method_call_timeout docs + cleanups.
      sd-bus: add sd_bus_message_seal docs + cleanups
      sd-bus: Add sd_bus_reply_method_return docs + cleanups
      Silence Wstring-plus-int warning when using clangd with GCC.
      sd-bus: Add sd_bus_send docs + cleanups.
      sd-bus: Add sd_bus_slot_get_current_* docs
      sd-bus: Fix pointer alignment
      sd-bus: Wrap add_object_vtable docs at 100 columns
      sd-bus: Fix typos in sd_bus_add_object_vtable docs
      sd-bus: Add sd_bus_add_object and callback docs
      sd-bus: Add note about sd_bus_reply_method_return to SD_BUS_METHOD docs
      sd-bus: Add sd_bus_get/set_priority docs + fixes
      sd-bus: sd_bus_call docs improvements
      sd-bus: Deprecate priority functions
      sd-bus: remove unused priority logic
      sd-bus: sd_bus_message_append fixes
      sd-bus: Add sd_bus_get/set_property docs
      meson: Exclude more deprecated functions from check-api-docs
      sd-bus: Fix sd_bus_close.xml line wrapping
      sd-bus: Add sd_bus_can_send docs
      sd-bus: Use pointer syntax for sd_bus_set_exec argv parameter
      sd-bus: Add sd_bus_set_exec docs
      man: review of import1(5)
      man: fixes from online review
      D-Bus docs: Use method instead of call
      sd-bus: Add sd_bus_add_filter docs
      sd-bus: Add sd_bus_add_object_manager docs
      D-Bus docs: systemd1 fixes
      sd-bus: Add sd_bus_set_server, sd_bus_get_bus_id docs
      sd-bus: sd_bus_add_object docs fixes
      sd-bus: Add sd_bus_add_node_enumerator docs
      sd-bus: Small sd_bus_add_object_manager docs fix
      sd-bus: Add sd_bus_emit_* docs
      sd-bus: Add sd_bus_get_current_* docs
      sd-bus: sd_bus_get_current_* docs fixes
      sd-bus: Add sd_bus_is_server + sd_bus_set/is_bus_client docs
      sd-bus: Add sd_bus_get/set_exit_on_disconnect docs
      sd-bus: Small sd_bus_set_server doc fix
      sd-bus: Rewrap sd_bus_get_fd docs
      sd-bus: sd_bus_get_fd docs typo fix
      sd-bus: Rewrap sd_bus_set_description docs
      sd-bus: Add sd_bus_get_scope/tid/unique_name docs
      sd-bus: Rewrap sd_bus_set_close_on_exit + small fixes
      sd-bus: Rewrap sd_bus_set_server docs at 109 columns
      sd-bus: Add sd_bus_set/is_monitor docs
      sd-bus: Add sd_bus_list_names docs
      sd-bus: Add sd_bus_message_read_strv docs
      sd-bus: Clarify sd_bus_list_names results ownership
      sd-bus: Add sd_bus_message_at_end docs
      sd-bus: Add sd_bus_get/set_allow_interactive_authorization docs
      sd-bus: Add sd_bus_message_get_error/errno docs
      sd-bus: Fix typo in sd_bus_message_append_array docs
      sd-bus: Add sd_bus_message_open/close/enter/exit_container docs
      sd-bus: Add sd_bus_message_peek_type docs
      sd-bus: Add sd_bus_send_to docs
      sd-bus: Add sd_bus_get_name_machine_id docs
      sd-bus: Add sd_bus_message_get_creds docs
      sd-bus: Add sd_bus_get_name/owner_creds docs
      sd-bus: Cite sd_bus_creds_unref in sd_bus_get_name_creds docs
      sd-bus: Add sd_bus_get_creds_mask docs
      sd-bus: Add sd_bus_query_sender_creds/privilege docs
      sd-bus: Add a nicer way of specifying sd-bus vtable method arguments
      resolved: Break include cycles
      resolved: Fix build error due to missing include.
      firstboot: Don't check twice if /etc/shadow exists
      sysusers: Move sync_rights and rename_and_apply_smack to basic
      fileio: Refactor sync_rights to take fds as arguments
      fileio: Rename rename_and_apply_smack to rename_and_apply_smack_floor_label.
      firstboot: Add --force option
      firstboot: Add --delete-root-password option
      Remove systemd-firstboot --force entry from TODO
      firstboot: Add --root-password-hashed option
      firstboot: Add --kernel-command-line option
      update NEWS
      resolved: Don't complain too much when downgrading from EDNS
      resolved: Log the feature level we're downgrading from as well
      networkd: Add missing match_wlan_iftype check to network_verify
      log: Prefer logging to CLI unless JOURNAL_STREAM is set
      mkosi: Keep mkosi.default out of the repository.
      mkosi: Update help comment in settings files
      firstboot: Tighten up passwd/shadow handling
      firstboot: Add --root-shell option
      Get SOURCE_EPOCH from the latest git tag instead of NEWS
      firstboot: Check if the given shell exists
      firstboot: Update help string with --root-shell options

Dan Callaghan (1):
      core: set private section name for automount units

Dan Streetman (19):
      man: sort log parameters in alphabetical order
      man: remove the '=' from --log-color and --log-location as they are optional arg
      log: add support for prefixing console log messages with current timestamp
      network: attach sd-event in link_load() when creating link dhcp_client or ipv4ll
      network: change UseGateway= default to UseRoutes= setting
      test: modify/add tests for UseRoutes= and UseGateway= configuration
      network: honor SetDNSRoutes= even if UseGateway=False
      test: verify RoutesToDNS= is independent of UseGateway=
      cgroup-util: check for SYSFS_MAGIC when detecting cgroup format
      test-cgroup: skip if /sys/fs/cgroup unknown fs
      test: find path for systemd-journal-remote
      network: Change IgnoreCarrierLoss default to value of ConfigureWithoutCarrier
      network: return 1 on start and 0 if ipv4ll is already started
      test: expand configure-without-carrier test
      test: add bridge configure-without-carrier test
      test: in test_bridge_configure_without_carrier, ignore setup_state
      test-network: don't print networkctl output for passing subtests
      test-netowrk: in test_bridge_configure_without_carrier, avoid strange test failures
      semaphoreci: update Debian release to bullseye

Dana Olson (1):
      ACCEL_MOUNT_MATRIX for additional Acer Spin model

Daniel Fullmer (1):
      sd-boot: fix menu ordering with boot counting

Daniel Rusek (1):
      l10n: update Czech Translation

Dave Reisner (1):
      Revert "job: Don't mark as redundant if deps are relevant"

David Edmundson (3):
      path-lookup: Use default value for XDG_CONFIG_DIRS if environment is not set
      docs: Change suffix for desktop applications to support non-transient services
      docs: Document xdg-autostart parameter X-systemd-skip

David Wood (1):
      network: Fix split in `SendOption=` on client and server

Denis Pronin (1):
      Support compiling with clang and gnu11 standard

Diego Escalante Urrelo (1):
      hwdb: Fix brightness keys for Logitech K811

Dimitri John Ledkov (1):
      meson: initialize time-epoch to reproducible builds compatible value

Einsler Lee (1):
      change fs/file-max to LONG_MAX instead of ULONG_MAX

Elisei Roca (2):
      test-functions: read /usr/etc/nsswitch.conf if /etc/nsswitch.conf does not exist (#16195)
      test: adapt test-functions for SUSE

Emmanuel Garette (1):
      repart: fix partition maximum size segfault

Eric Anderson (1):
      socket-proxy: Support exit-on-idle

Eric DeVolder (1):
      pstore: introduce tmpfiles.d/systemd-pstore.conf

Evgeny Vereshchagin (32):
      travis: install ninja with pip
      ci: turn off FuzzBuzz
      semaphore: switch to upstream-ci
      oss-fuzz: point the badge directly to our logs
      cifuzz: upload artifacts only when the "run fuzzers" step fails
      build-system: bring back 'nonnull'
      semaphore: use dots instead of dashes
      ci: install fdisk on Debian
      cifuzz: set allowed-broken-targets-percentage to 0
      cifuzz: protect forks from CIFuzz
      README: add a CIFuzz badge
      build-system: build the fuzz targets with both ASan and UBSan
      fuzzit: turn on the pointer-overflow check
      oss-fuzz: turn on the pointer-overflow check
      docs: add a link to the Fossies codespell report
      tests: add a testcase for https://github.com/systemd/systemd/issues/15885
      add a test triggering https://github.com/systemd/systemd/issues/15907
      fuzzit: switch to -fundefined
      README: add a Fossies codespell badge
      tests: add a testcase triggering https://github.com/systemd/systemd/issues/15968
      turn off fuzzit
      turn off fuzzit part 2
      cifuzz: build fuzz target with UBsan and MSan as well
      ci: pass -Werror using CFLAGS
      ci: bring back Coverity
      ci: bring back Coverity part 2
      ci: switch to Ubuntu Bionic on Semaphore
      ci: free up some resources on Pipelines
      coverity: switch back to Fedora 31
      coverity: install systemd
      ci: turn off the "upstream-systemd-ci" ppa
      Revert "ci: turn off the "upstream-systemd-ci" ppa"

ExtinctFire (1):
      load-fragment: fix a typo

Ferran Pallarès Roca (1):
      Add Zowie ZA12 details to mouse hwdb

Filipe Brandenburger (7):
      meson: add a new -Dstandalone-binaries=true option
      meson: build standalone version of systemd-tmpfiles
      efi: Cache contents of EFI variable SystemdOptions
      efi: Skip parsing SystemdOptions if there's an error getting it.
      log: introduce log_parse_environment_cli() and log_setup_cli()
      test: Add "finish" rule to .PHONY
      timer: Adjust calendar timers based on monotonic timer instead of realtime

Filippo Falezza (1):
      Added MSI Prestige15 A10SC specific keycodes

Finn (1):
      Fix keys on Medion Akoya P6669

Florian Klink (2):
      meson.build: drop unused SYSTEMD_SLEEP_BINARY_PATH
      resolved-dns-query: remove dns_query_candidate_is_routable

Florian Mayer (1):
      Explain how to determine hierarchy type from shell

Franck Bui (27):
      logind: log a more accurate error when we failed at session creation
      systemd-network-generator.service: network-pre.target is a passive target unit
      device: drop refuse_after
      fstab-util: introduce fstab_is_extrinsic()
      generator: don't generate device dependencies for extrinsic mounts
      mount: mount unit activated by automount unit should be only ordered against the automount unit
      pid1: by default make user units inherit their umask from the user manager
      mount: let pid1 alone handle the default dependencies for mount units
      automount: fix handling of default dependencies for automount units
      mount: introduce mount_add_default_ordering_dependencies()
      mount: default startup dependencies and default network ones are orthogonal
      mount: introduce mount_is_nofail() helper
      pid1: update manager settings on reload too
      pid1: fold load_configuration() into main()
      pid1: make manager_flip_auto_status() static
      pid1: make manager_vacuum_{uid,gid}_refs() static
      pid1: make manager_serialize_{uid,gid}_refs() static
      pid1: make manager_deserialize_{uid,gid}_refs() static
      pid1: make more use of show_status_on()
      pid1: rename manager_get_show_status() to manager_should_show_status()
      pid1: rework handling of m->show_status
      pid1: introduce an helper to handle the show-status marker
      pid1: add a new SetShowStatus() bus call to override/restore show status mode
      pid1: rename manager_set_{show_status,watchdog}_overridden() into manager_override_(show_status,watchdog}
      fstab-generator: extra dependencies specified in fstab should be applied to the mount unit
      fstab-generator: introduce an helper to write extra dependencies specified via the mount options
      vconsole-setup: downgrade log message when setting font fails on dummy console

Frantisek Sumsal (54):
      test: ignore IAB capabilities in `test-execute`
      format-table: allow hiding a specific column
      systemctl: hide the 'glyph' column when --no-legend is requested
      test: wait a bit after starting the test service
      test: wait a bit after stopping the test service
      coredumpctl: support --file=PATH
      test: drop Disk (Size|Free|Floor|Ceiling) fields prior comparing
      tree-wide: formatting tweaks reported by Coccinelle
      tree-wide: fix spelling errors
      test: correctly clean up test artifacts
      fuzzit: make the submit phase a bit more robust
      ci: introduce CIFuzz
      man: fix few spelling errors
      test: fix potential use-after-free
      Revert "logs-show: declare [static 2] on all highlight parameters"
      cifuzz: run only for relevant PRs
      cifuzz: fuzz the master branch on push
      hwdb: fix microphone shortcut on HP EliteBook 840 G1
      shared: fix integer overflow in calendarspec
      test: unify quotation around image names
      test: fix public/private image detection and prefer the latter one
      test: introduce TEST_PARALLELIZE to support running tests in parallel
      meson: add fuzz-tests= option
      travis: enable fuzzer regression tests under sanitizers
      meson: pass the optimization level to the fuzzer build
      tree-wide: codespell fixes
      test: make the systemd-run calls synchronous
      test: create public images by default
      meson: support building fuzzers with meson <0.48.0
      NEWS: fix several typos
      test: avoid failing due to unexpected precision
      travis: check build with various compiler options
      tree-wide: mark assert()-only variables as unused
      test: make TEST-02-CRYPTSETUP a bit more robust
      travis: replace set (+|-)e with travis_terminate
      journal: drop the assert-only variable completely
      travis: bump Ubuntu release to Bionic
      github: rename CIFuzz workflow file to cifuzz.yml
      github: move the clang/gcc build check to GH Actions
      ci: add homed/zstd dependencies
      ci: do the compiler-detection magic in the test script
      ci: move the build check script to workflows directory
      ci: tweak the compilation options
      ci: tweak the dependency installation
      travis: use a matrix for similar jobs
      travis: drop stuff moved to GH Actions
      travis: sort dependencies
      tree-wide: spellcheck fixes
      test: bump the timeout for systemd-hwdb-update.service under ASan
      test: use KILL instead of SIGKILL in TEST-52-HONORFIRSTSHUTDOWN
      travis: install missing deps for the Coverity run
      unit-name: fix a potential memory leak
      test: bump the TEST-47 sleeps once again
      travis: compile with -O1 with clang

Gaurav Singh (1):
      test-cgroup-util: Handle result=NULL as empty string

Georg Müller (2):
      journalctl: show duplicate entries if they are from the same file (#14898)
      fix journalctl regression (#15099)

Gergely Polonkai (1):
      Update the rsync command in CONVERTING_TO_HOMED

Giedrius Statkevičius (3):
      systemctl: exit with 1 if no unit files found
      resolve: reload /etc/hosts on inode change
      verify: ignore nonexistent executables if required

Gigadoc2 (1):
      hwdb: add another Logitech G502 Hero variant (#16256)

Hans de Goede (5):
      hwdb: Add accel orientation quirk for MPMAN MPWIN895CL tablet
      hwdb: Fix accel orientation quirk for Medion Akoya E2215T MD60198
      hwdb: Add accel orientation quirk for Toshiba Encore WT10A tablet
      hwdb: Add accel orientation quirk for Trekstor Surftab Twin 10.1 ST10432-8
      logind: Fix org.freedesktop.login1.set-reboot-to-boot-loader-menu saving to the wrong file in the non EFI case

Haochen Tong (3):
      analyze: fix table time output
      home: fix segfault when parsing arguments in PAM module
      zsh: fix disable/enable completion

Jakov Smolic (3):
      Add meson build option to prevent building kernel-install
      Add new meson configure option for controlling systemd-analyze support
      Include new configure options in features list

James T. Lee (1):
      boot: Ensure ARM UEFI binary does not contain FP/SIMD instructions

Jan Janssen (1):
      sd-boot: Add → as alternative to boot selected entry

Jan Klötzke (1):
      core: let user define start-/stop-timeout behaviour

Jan Palus (1):
      login: filenames in /run/systemd/users are uids

Jay Burger (3):
      fix manager_state
      fix_test_function_timeout
      feature to honor first shutdown request to completion

Jeremy Cline (2):
      Tidy up the Fedora mkosi Package list
      shared: treat generator units as vendor units

Jian-Hong Pan (1):
      hwdb: Fix kbd brightness keys on Acer Predator PH 315-52

Jiri Slaby (1):
      hwdb: Add accel orientation quirk for UMAX VisionBook 10Wi Pro

Joel Shapiro (2):
      Fix pam_systemd_home's debug parameter to match man page description
      Fix misuse of PAM_PROMPT_ECHO_OFF in systemd-homed

Joerg Behrmann (1):
      docs: Add syntax for templated units to systemd.preset man page

Jouke Witteveen (1):
      systemctl: hide first column with --plain instead of --no-legend

Jérémy Rosen (3):
      make-directive-index: allow pages to specify the path to search
      make-directive-index: allow variablelist to specify an element to index
      update-dbus-docs: automatically add variablelist for introspected items

Jörg Thalheim (1):
      systemd-resolved: use hostname for certificate validation in DoT

Kai-Heng Feng (2):
      hwdb: Mask rfkill event from intel-hid on HP platforms
      hwdb: Add EliteBook to use micmute hotkey

Kenny Levinsen (2):
      core: Add optional FDPOLL=0 argument to fdstore
      core: (De-)Serialize poll flag for fds in fdstore

Kevin Kuehler (2):
      import: Only keep RO copy if ETag header is set
      basic: Fix capability_ambient_set_apply for kernels < 4.3

Kumar Kartikeya Dwivedi (3):
      test: add a test case for #15528
      Introduce sd_notify_barrier
      man: sd_notify() race is gone with sd_notify_barrier()

Lennart Poettering (542):
      userwork: fix signal worker sends to manager requesting more workers
      user-util: switch order of checks in valid_user_group_name_or_id_full()
      units: do not pull in home.mount from systemd-homed.service
      man: mention that stdout logging works the same as stderr logging
      homed: fall back to ftruncate() if fallocate() is not supported on backing fs
      update TODO
      string-util: some minor coding style updates
      string-util: make sure we eat even half complete words in split()
      string-util: make clear that split() + FOREACH_WORD() should die
      update TODO
      Revert "units: make systemd-repart.service installable"
      units: run systemd-repart only if there's configuration for it
      capability: don't skip ambient caps setup if we actually have something to set
      preset: let's clean up preset list a bit
      units: pull in systemd-pstore.service from sysinit.target
      core: automatically add dependency on systemd-remount-fs.service if StateDirectory= is used
      units: drop dependency on systemd-remount-fs.service from systemd-pstore.service
      units: drop systemd-remount-fs.service dependency from more services
      units: make sure systemd-pstore stops at shutdown
      userdbctl: drop redundant user name validity check
      user-util: rework how we validate user names
      docs: add a longer document explaining our rules on user/group names
      docs: hook up the new USER_NAMES document everywhere
      catalog: add entry for SD_MESSAGE_UNSAFE_USER_NAME
      terminal-util: fixate underlined yellow color too
      test-terminal-util: fix typo
      man: correct the default slice for systemd-run units
      sleep: improve log msg slightly
      btrfs-util: define helper that creates a btrfs subvol if we can, and a directory as fallback
      import: use our new btrfs_subvol_make_fallback() at two places
      homed: when creating home directory as btrfs inside luks volume, place subvol inside it
      pam-systemd-home: drop redundant newline
      userdb: when doing client-side NSS look-ups optionally avoid shadow look-ups
      logind: avoid shadow lookups when doing userdb client side
      man: reference pam_systemd_home man page from systemd-homed man page
      docs: add missing dash
      docs: fix typo now → not
      bootctl: fix assert issue
      docs: add brief document how to convert home directories to homed
      man: extend documentation of the suspend= switch of pam_systemd_home
      docs: add some documentation about hooking up userdb/homed to desktop environments
      docs: introduce documentation category for user/group stuff
      fileio: fileno() can realistically return -1
      fileio: optionally allow telling read_line_full() whether we are processing a tty or not
      fileio: extend comment a bit
      hwdb: optimize isatty()-per-line away
      update TODO
      core: make sure ProtectHostname= is handled gracefully in containers lacking seccomp
      locale-util: add support for lock+key emoji
      locale-util: export emoji_enable() for other code to use
      ask-password: prefix password questions with lock and key emoji
      ask-password-api: reword some debug messages
      man: update os-release(5) to use 24bit ANSI color in example
      units: use correct path to refer to plymouth
      resolved: tone down comment in /run/systemd/{stub-,}resolve.conf
      journald: add configuration option for enabling/disabling audit during journald startup
      errno-util: let's beef up ERRNO_IS_NOT_SUPPORTED() with socket not supported errors
      man: document how to get the boot menu with zero time-out
      core: automatically add udev dependency for units using RootImage=
      log-control-api: add generic D-Bus interface for querying/setting log level/target
      resolved: replace private log level control API with generic one
      tree-wide: implement new log control API dbus interface in all our daemons
      core: use generic implementations of log level/target bus propertier getters
      core: implement generic log control API in PID1 too
      update TODO
      core: minor error code handling fixes
      resolve: move resolv.conf path definitions to shared header
      nspawn: beef up --resolve-conf= modes
      man: document the new --resolv-conf= options
      core: some minor clean-ups/modernizations
      core: make sure to restore the control command id, too
      man: document that VirtualEthernetExtra= has nothing to do with Bridge=
      core: make sure we don't get confused when setting TERM for a tty fd
      nspawn: some minor modernizations
      sd-bus: work around ubsan warning
      acpi-fpdt: mark structures as packed
      nspawn: minor simplification
      nspawn: refuse politely when we are run in the non-host netns in combination with --image=
      sd-journal: don't check namespaces if we have no namespace to go by
      socket-util: add recvmsg_safe() wrapper that handles MSG_CTRUNC
      tree-wide: use recvmsg_safe() at various places
      run: don't wait for start job to complete when running interactively anyway
      macro: add READ_NOW() macro for force reading of memory, making a copy
      journal-file: avoid risky subtraction when validity checking object
      journal: use a bitfield where appropriate
      journal: use structured initialization for Location structure
      memory-util: add missing () in macro evaulation
      journal: don't assert on mmap'ed object type
      journal: several minor coding style fixes/clean-ups
      journal: make sure to explicitly copy out values of mmap before doing arithmetics on them
      journal: no need to check offset twice, journal_file_move_to_object() does it again
      udev: prepare memory for extra NUL termination for NULSTR
      udev: use STR_IN_SET() wher eit makes sense
      sysusers: add accidentally forgotten 'return'
      sysusers,tmpfiles: always mention error when failing to replace specifiers
      stat-util: no need to open a file to check fs type
      stat-util: add simpler helper for checking if /proc/ is mounted
      tmpfiles: if we get ENOENT when opening /proc/self/fd/, check if /proc is mounted
      update TODO
      shared: add common helper for unregistering all binfmt entries
      shutdown: unregister all binfmt_misc entries before entering shutdown loop
      binfmt: modernize code a bit
      binfmt: also unregister binfmt entries from unit
      man: document binfmt's new --unregister switch
      tree-wide: use cmsg_find() helper at various places where appropriate
      socket-util: introduce type-safe, dereferencing wrapper CMSG_FIND_DATA around cmsg_find()
      networkd: don't do lldp rx nor tx on bond devices
      home: fix strv NUL termination
      nss-systemd: don't synthesize root/nobody when iterating
      dhcp-client: port to recvmsg_safe()
      icmp6-util: port to recvmsg_safe()
      dhcp-server: port to recvmsg_safe()
      tree-wide: use structured initialization at various places
      update TODO
      nspawn: be more careful with creating/chowning directories to overmount
      main: bump RLIMIT_MEMLOCK by physical RAM size
      update TODO
      tree-wide: support a bunch of additional specifiers
      man: document new specifiers
      update TODO
      tmpfiles: use log_syntax() for all parse errors
      tmpfiles: remove unnecessary assert
      json: when making a copy of a json variant, propagate the sensitive bit
      home: mark various bus messages we write user records to as sensitive
      home: make sure whenever we touch the 'secret' part of a user record, we set the the sensitive flag on it
      efi: cache test results of boolean EFI state functions
      efi: honour SYSTEMD_EFI_OPTIONS even if we wouldn't honour SystemdOptions EFI var due to SecureBoot
      notify: beef up --pid= logic
      basic: add STRCASE_IN_SET() which is to STR_IN_SET() what strcaseeq() is to streq()
      format-table: generate better JSON field names
      systemctl: optionally output tables in JSON format
      calendarspec: encode that it's OK to store µs in 'int's
      calendarspec: pack our flags a bit
      calendarspec: drop _pure_ from static function
      calendarspec: minor simplification
      calendarspec: be more graceful with two kinds of calendar expressions
      man: expand on the star…end/repetition time expressions
      journal: use set_contains() where appropriate
      journalctl: optionally, show a different field than MESSAGE in -o cat mode
      man: document the new -o cat feature
      logs-show: declare [static 2] on all highlight parameters
      shutdown: fix spacing in shutdown error message
      man: migrate more specifier explanations to standard-specifiers.xml
      sysusers: be extra careful when locking accounts
      format-table: display an empty strv cell the same way as an empty cell
      systemctl: show empty cells as '-'
      systemctl: change column name in "list-sockets" out from "units" to "unit"
      systemctl: let's tweak how we synthesize a cell for activating unit
      systemctl: ensure underline for "list-unit-files" empty cells
      format-table: support coloring the gap right of each cell individually
      systemctl: underline whole rows, gapless
      login: include pam_systemd_home.so in the default PAM snippet we ship for user@.service
      man: highlight relevant lines in pam_systemd_home.so example PAM snippet
      man: bring example PAM snippet of pam_systemd and pam_systemd_home back in sync
      homed: open up home dir Acquire operation to unpriv clients
      homectl: show disk free in percent in 'inspect'
      tree-wide: use CMSG_SPACE() (and not CMSG_LEN()) to allocate control buffers
      tree-wide: remove redundant assignments
      tree-wide: make sure our control buffers are properly aligned
      man: document homed key management
      update TODO
      homed: allow overriding homework path via env var
      user-record: add new field for requesting LUKS discard on logout
      homectl: add option for controlling new luksOfflineDiscard user record field
      homework: run fitrim or fallocate on logout based on the new user record property
      docs: document the new offline discard logic
      update TODO
      tmpfiles: optionally, read /etc/passwd + /etc/group without NSS
      sysusers/tmpfiles: use --root=/ as way to force offline operation (i.e.  without NSS)
      man: document the new tmpfiles --root= behaviour regarding users
      locale-util: add new helper locale_is_installed()
      test: add test case for locale_is_installed()
      tree-wide: port various bits over to locale_is_installed()
      meson: re-run ninja update-man-rules
      update TODO
      fs-util: add helper path_is_encrypted() that checks if a file system is encrypted
      user-record: split out code that generates automatic image path for records
      home: when adding a binding for a user record, use common code for determining automatic image path
      homed: tweak logic for picking a default storage and file system
      homed: move supported_fstype() to home-util.c
      homed: make default storage/file system type configurable in homed.conf
      man: document homed.conf
      update TODO
      homectl: color disk free output if low on free space
      update TODO
      update TODO
      fs-util: beef up path_is_encrypted() to deal with LVM block devices
      update TODO
      random-util: actually encode our expectations on RAND_MAX
      random-util: use ERRNO_IS_NOT_SUPPORTED() macro
      random-util: make use of GRND_INSECURE when it is defined
      update TODO
      man: mention the exclamation mark and minus sign literally, to make things searchable
      tmpfiles: clarify that "!" lines are filtered before collisions are checked
      seccomp-util: add new syscalls from kernel 5.6 to syscall filter table
      man: clarify that exit status name mappings are unaffected by SuccessExitStatus=
      netlink: port to recvmsg_safe()
      man: run man/update-dbus-docs again
      homed: fix parameter names on D-Bus methods
      man: document homed D-Bus API
      pam_systemd_home: use correct macro for converting ptr to fd
      pam_systemd: drop unused uid argument from export_legacy_dbus_address()
      pam_systemd: also print debug lines when ending a session
      update TODO
      pam_systemd/pam_systemd_home: rework how we cache user records
      pam_systemd_home: also store acquirement fd per user
      core: don't bind varlink socket if running in test mode
      update TODO
      systemctl: fix indentation of 'Active:' field in status output
      stat-util: add stat_inode_unmodified() helper that checks if an inode was modified
      resolved: port to stat_inode_unmodified()
      sd-bus: introduce new SD_BUS_VTABLE_ABSOLUTE_OFFSET vtable flag
      man: complete vtable flag documentation
      journald: use log_warning_errno() where appropriate
      journald: rework end of line marker handling to use a field table
      journald: use the fact that client_context_release() returns NULL
      journald: rework pid change handling
      man: document the new _LINE_BREAK= type
      sd-dhcp-server: some function prototype fix-ups
      man: document $LOG_NAMESPACE
      sysctl: check correct error code
      repart: explain when we exit early and don't do a thing
      repart: suppress complaints about lack of BLKRRPART when operating on regular file
      repart: add support for create/growing loopback files
      test: update tests to use new repart features
      man: document new --empty=create and --size= switches to repart
      update TODO
      man: drop some left-over mentions of StandardOutput=syslog
      core: automatically update StandardOuput=syslog to =journal (and similar for StandardError=)
      condition: add ConditionPathIsEncrypted=
      condition: introduce generic function type for condition_to_string()-like functions
      condition: return (Condition*) NULL from condition_free()
      limit-util: quieten a very common debug message that is misleading
      condition: add ConditionEnvironment=
      man: document the two new condition types
      update TODO
      udev: get rid of "Could not set flow control of" message on "lo" interface
      update TODO
      blockdev: propagate one more unexpected error
      makefs: log about OOM condition
      dissect: use log_debug_errno() where appropriate
      blockdev: add helper for locking whole block device
      condition: check if path is absolute first
      condition: add debug log messages on unexpected errors
      condition: downgrade a few log messages to debug
      condition: when reading /etc/ modification timestamp, let's actualy compare it as-is
      proc-cmdline: add some explanatory comments
      condition: allow overriding of ConditionNeedsUpdate= on the kernel command line
      condition: reverse if check to lower indentation level
      condition: debug log if F_OK check on /run/systemd/first-boot fails unexpectedly
      condition: introduce systemd.condition-first-boot= kernel command line switch
      main: add a kernel command line option for setting the system clock early during boot
      core: allow overriding the system hostname with systemd.hostname= on the kernel command line
      update TODO
      makefs: lock device while we operate
      makefs: normalize logging a bit
      cryptsetup-generator: use systemd-makefs for implementation of "swap" and "tmp" options
      hostnamed: don't cache uname() data
      hostnamed: don't cache system UUID
      hostnamed: call our destructor _destroy(), not _clear()
      dhcp6: slightly improve log message
      busctl: use structured initialization
      busctl: improve error messages on duplicate members/interfaces
      homed: use right config section in example config
      test-fs-util: don't fail on btrfs file systems in containers
      btrfs-util: tweak error code a bit
      repart: don't insist on coming up on partition label ourselves
      journalctl,elsewhere: make sure --file=foo fails with sane error msg if foo is not readable
      fs-util: teach unlinkat_deallocate() a simple scheme for overwriting for erasing
      cryptsetup: catch up with debian crypttab options a bit
      cryptsetup: optionally remove key file after use
      cryptsetup: split out key loading from pkcs11 code and teach search path logic
      cryptsetup: automatically load luks keys off disk
      cryptsetup: make sure to return EAGAIN on wrong tcrypt password too
      cryptsetup: also check for /dev/hwrng as random device node
      cryptsetup: fix minor memory leak
      cryptsetup: optionally, see if empty password works for unlocking the file system
      cryptsetup: fix minor indentation issue
      man: document the newly acquired cryptsetup features
      update TODO
      man_systemd_home: intrdouce SYSTEMD_HOME_SUSPEND env var
      pam_systemd: clean up success path
      udev: when random MACs are requested, generate them with genuine randomness
      man: include sd_bus_message_handler_t prototype in synopsys of all man pages that reference the type
      man: let's document explicitly that method reply handlers won't get ret_error set to method error
      proc-cmdline: fix return value clobbering in proc_cmdline_get_key()
      proc-cmdline: add checking of EFI options variable in proc_cmdline_get_key_many() too
      proc-cmdline: make checking of EFI options variable optional
      homed: fix return value mix-up
      rules: automatically pull in smartcard.target from all CCID devices
      homed: return a better error when a home has no authentication information defined
      fileio: sync directory after rename, too
      homed: when updating local copy of user record, sync to disk
      homed: automatically clean up empty user record files
      homed: make sure we log about invalid user records we load
      homed: fix typo
      homed: also fsync private/public key pair when storing it
      bus-util: actually register the object manager
      homed: include error string when in log message if quota doesn't work
      homed: don't insist on authentication against host-copy user record
      tmpfiles: downgrade log message when we can't write a file and failure is allowed
      tmpfiles: don't complain if we can't enable pstore in containers
      json: use our regular way to turn off compiler warnings
      tree-wide: use DISABLE_WARNING_FORMAT_NONLITERAL where appropriate
      macro: introduce DISABLE_WARNING_TYPE_LIMITS and make use of it everywhere
      json: turn off ubsan for json_variant_has_type()
      unit-name: tighten checks for building valid unit names
      unit-name: use TAKE_PTR() where appropriate
      core: improve log messages when we cannot process a mount point
      journal: expand variables up to PATH_MAX in size in catalog output
      update TODO
      fstab-util: prefix return parameters with ret_
      cryptsetup: support tmp= file system argument
      update TODO
      Revert "presets: "disable" all passive targets by default"
      tmpfiles: deal with kernel errno change if quota is not enabled
      units: don't set PrivateNetwork= in systemd-homed.service
      gpt: include homed GPT partition type in well-known partition table
      core: warn if KillMode=none is used
      man: document that KillMode=none is a bad idea
      units: remove KillMode=process in our regular gettys
      core: also log about left-over processes during unit stop
      core: some more structured initialization
      core: voidify one function return
      sysv: use structured initialization
      sysv: generate warning for every SysV service lacking a native systemd unit
      update TODO
      efivars: log whenever an EFI variable read access is slow
      run: when waiting for unit, also check if no job is pending anymore
      udev: when the BSD lock on a block device is taken, don't complain
      socket-util: add generic socket_pass_pktinfo() helper
      core: add new PassPacketInfo= socket unit property
      networkd: clean up NETLINK_PKTINFO vs. SO_PASSCRED confusion
      resolved: tweak cmsg calculation
      pam_systemd: be more thorough when validating runtime paths
      pam_systemd: set legacy D-Bus path only if the runtime directory is validated
      tree-wide: remove spurious whitespace
      start NEWS file for v246
      hwdb: whitespace fix
      libsystemd: properly export new sd_notify_barrier() API call
      udev: catch genuine_random_bytes() failures
      homed: enable userdb too if homed is requested
      xdg-autostart: fix two coverity found issues
      path: use ROOTPREFIX properly
      sd-path: drop "-dir" and "-path" suffixes from path enums
      update TODO
      sd-device: check netlink netns matches host netns before using monitor
      catalog: normalize how we link to documentation
      locale-util: add glyph for external links
      pretty-print: export urlify_enabled()
      journal: show documentation hyperlink if known in log output
      logs: strndupa() cannot fail
      man: briefly document the DOCUMENTATION= structure log field
      update NEWS
      efi: cache LoaderEntries EFI variable
      efi: avoid weirdly double }} by indenting differently
      efi: cache OsIndicationsSupported
      efi: as extra paranoia NUL terminate UTF-16 strings with three NUL bytes
      efi: explicitly update mtime of EFI variables when changing them
      efi: cache OsIndications too
      bootctl: show reboot-to-firmware info, too
      bootctl: add simple, low-level reboot-to-firmware verb for controlling the flag
      efi: add more logging for all EFI variable reads
      update TODO
      stat-util: trivial empty_or_null() tweaks
      sd-dhcp: clean-up of DHCP lease server code
      update TODO
      fd-util: be more careful with fclose() errnos
      fs-util: add stat_warn_permissions() that operates on struct stat instead of fd
      conf-parse: fix pretty bad typo
      conf-parser: return mtime in config_parse() and friends
      core: remove support for ".include" stanza
      seccomp: filter openat2() entirely in seccomp_restrict_sxid()
      parse-util: allow tweaking how to parse integers
      parse-util: allow '-0' as alternative to '0' and '+0'
      parse-util: make return parameter optional in safe_atou16_full()
      parse-util: rewrite parse_mode() on top of safe_atou_full()
      user-util: be stricter in parse_uid()
      parse-util: rewrite parse_uid_range() on top of parse_uid()
      parse-util: also parse integers prefixed with 0b and 0o
      tests: beef up integer parsing tests
      test: add test for parse_uid_range()
      udev: optionally mark all block devices read-only as they pop up
      units: tweak udev unit descriptions
      man: single-char parameters take no '='
      update TODO
      cryptsetup: try to load bitlocker superblock only if requested
      cryptsetup: pass selected mode to crypt_load() when doing LUKS
      udevd: use cpus_in_affinity_mask()
      udev: set fewer process properties
      mkdir: use log_full_errno() where appropriate
      login: use ERRNO_IS_PRIVILEGE() where appropriate
      inaccessible: move inaccessible file nodes to /systemd/ subdir in runtime dir always
      tree-wide: check POLLNVAL everywhere
      docs: point contributors to list of most recent systemd releases
      pager: set PR_DEATHSIG for pager to SIGINT rather than SIGTERM
      update TODO
      tree-wide: port to fd_wait_for_event()
      sleep-config: add more debug logging
      sleep-config: return correct error code
      sleep: clean up debug/error logging
      sleep-config: downgrade log level in can_s2h()
      sleep-config: modernize destructors
      sleep: pass error we see to log function
      hwdb: generate a hwdb file instead of rules for autosuspend
      update TODO
      README: add reference to systemd.io
      update TODO
      repart: add simple specifier expansion in Label=
      repart: if now minimal size is specified, default to 10M
      USER_RECORD: fix typo
      network: clean-up DHCP lease server data configuration
      selinux-util: tweak log_enforcing_errno() to return the errno passed in or 0 when in non-enforcing mode
      nspawn: mkdir selinux mount point once, but not twice
      man: s/PROGRAMM/PROGRAM/
      man: replace perl bug tracker link that went away with link to paper
      util: add dlfcn-util.h
      nss-systemd: skip /etc/gshadow look-ups when we just need the GID of a group
      userdb: replace recursion lock
      random-seed: use ERRNO_IS_NOT_SUPPORTED() where appropriate
      pid1: don't apply "systemd.clock_usec" kernel cmdline parameter outside of PID 1
      random-util: add common helper random_write_entropy() for crediting entropy to the kernel's pool
      core: add new systemd.random_seed= kernel command line option for seeding entropy pool
      man: document systemd.random-seed=
      update TODO
      tree-wide: avoid some loaded terms
      hostnamed: don't cache local hostname either
      hostnamed: minimize caching of /etc/hostname, /etc/os-release and /etc/machine-info
      macro: add CONST_MIN() similar to CONST_MAX()
      journal: fix definition of _OBJECT_COMPRESSED_MAX
      journal-file: use FLAGS_SET where appropriate
      journal: store NE hash instead of LE hash in Match object
      journal-file: simplify boot ID acquiring
      journal-file: also show field hash table size in debug output
      journal-file: rename return parameters to ret_xyz
      journal: rename hash64() to jenkins_hash64()
      journal: make signature arrays const
      journal: use a different hash function for each journal file
      journal-file: when individual hash chains grow too large, rotate
      journal: support zstd compression for large objects in journal files
      docs: import journal file format docs from fdo wiki
      docs: document the new journal file format additions
      tree-wide: add new HAVE_COMPRESSION compile time flag
      coredump: use log_error_errno() where appropriate
      compress: do something roughly reasonable when building without compressor
      update TODO
      repart: add new CopyBlocks= setting
      update TODO
      tmpfile-util: typo fixes
      efi-loader: cache LoaderConfigTimeoutOneShot too
      logind: also cache LoaderEntryOneShot EFI variable
      NEWS: add more items for 246
      JOURNAL_FILE_FORMAT: minor markdown fixes
      update TODO
      update TODO
      pid1: warn if people use User=nobody (#16293)
      shared: split out BusObjectImplementor APIs
      shared: actually move all BusLocator related calls to bus-locator.c
      shared: split out code that maps properties to local structs
      shared: split out code for printing properties
      shared: split out property get helpers
      update TODO
      locale-util: add support for touch emoji
      macro: add new FOREACH_POINTER() macro magic
      pkcs11-util: reduce scope of a variable
      homectl: add missing log messages when json_variant_format() fails
      user-record: securely erase pkcs#11 when assigned NULL too
      user-record: rename JSON field "pkcs11Pin" to "tokenPin"
      build-sys: add libfido2 as optional dependency
      user-record: add fields for FIDO2 HMAC authentication options
      homectl: add support for enrolling FIDO2 HMAC-SECRET tokens
      homed: add support for authenticating with fido2 hmac-secret tokens
      pam-systemd-home: print helpful message when token's PIN is locked
      homectl: show touch emoji when asking for PKCS#11 protected auth path
      homectl: do generic error handling/retry also when creating a home directory
      homectl: rework how we log when doing a home directory update
      homectl: split out pkcs#11 related code bits into own .c/.h file
      homectl: add acquired fido2 PIN to user record
      homectl: add --pkcs11-uri=auto and --pkcs-11-uri=list support
      docs: document new FIDO2 user record fields
      man: update homectl man page with documentation for new features
      update TODO
      namespace-util: introduce helper for combining unshare() + MS_SLAVE remount
      mount-util: add destructor helper that umounts + rmdirs a path
      mount-util: use UMOUNT_NOFOLLOW in recursive umounter
      firstboot: add --image= switch
      man: document the new --image= switch of systemd-firstboot
      firstboot: add option to turn off welcome text display
      TODO
      update TODO
      update NEWS
      NEWS: drop duplicate entry, add --image= entry
      udevadm: beef up deprecation log warning
      update TODO
      analyze: make testing ConditionPathExistsGlob= work
      update TODO
      docs: permit user/group services that do not support enumeration
      process-util: make sure procfs_file_alloca() works for non-literal field names too
      machined: refactor UID/GID machine translation
      machined: implement user/group lookup varlink API in machined too
      man: document new varlink service
      nss-mymachines: drop support for UID/GID resolving
      update TODO
      logs: when embedding catalog info in log output use a dash of color and unicode
      update TODO
      core: fix invalid assertion
      mountpoint-util: fix error handling
      load-fragment: downgrade log messages we ignore to LOG_WARNING
      execute: fix if check
      machine: fix if check
      Revert "selinux: cache enforced status and treat retrieve failure as enforced mode"
      man: don't claim environment.d/ was about sessions
      man: GNOME is usually capitalized
      man: configuration files contain assignments, no directories
      fileio: add explicit flag for generating world executable warning when reading file
      fileio: add support for read_full_file() on AF_UNIX stream sockets
      fileio: allow to read base64/hex data as strings
      tree-wide: use READ_FULL_FILE_CONNECT_SOCKET at various places
      fileio: add brief explanations for flags
      import: always prefer GNU tar, to avoid cmdline incompatibilities
      update NEWS
      time-util: rework clock conversion logic
      test: add basic test for clock mapping
      core: don't acquire dual timestamp needlessly if we don't need it in .timer handling
      user-util: indentation fix
      update TODO
      offline-passwd: use chase_symlinks()
      acl-util: fix error handling in add_acls_for_user()
      coredump: port to use common add_acls_for_user()
      execute: take ownership of more fields in ExecParameters
      update NEWS
      nspawn: fix MS_SHARED mount propagation for userns containers
      firstboot: don't create /etc/passwd with mode 000
      core: clean more env vars from env block pid1 receives
      nspawn: add missing spdx header
      nspawn: rework how /run/host/ is set up
      update TODO
      man: fix link markup
      meson: run 'ninja man/update-man-rules' again
      repart: log fixes
      path-util: make use of TAKE_PTR() where we can
      loop-device: implicitly sync device on detach

Lidong Zhong (1):
      udev: rename the persistent link for ATA devices

Luca BRUNO (1):
      man/systemd-service: clarify env variable expansion

Luca Boccassi (40):
      man: explicitly note that ExecSt*Post does count for After/Before ordering
      man: add missing varname around keywords in systemd.unit.xml
      core: add log_get_max_level check optimization in log_unit_full
      core: add debug log when a job in the activation queue is not runnable
      Revert "detect-virt: also detect "microsoft" as WSL"
      core: reload cache if it's dirty when starting a UNIT_NOT_FOUND unit
      test: temporarily block test 48 on Ubuntu's autopkgtest
      dissect-image: wait for udev for single filesystem images too
      dissect: support single-filesystem verity images with external verity hash
      efi: use stub for cache_efi_options_variable if !ENABLE_EFI
      core: add RootHash and RootVerity service parameters
      basic/mkdir: introduce safe recursive variants
      nspawn: use mkdir_p_safe instead of homegrown version
      Container interface: document exposing the host's os-release
      nspawn: implement container host os-release interface
      portabled: implement container host os-release interface
      make-autosuspend-rules: restore compatibility with Python3 < 3.6
      veritysetup: add support for dm-verity root hash signature
      dissect/nspawn: add support for dm-verity root hash signature
      core: add RootHashSignature service parameter
      portabled: create temp file for unit, not directory
      core: add device mapper to allow-list with DevicePolicy=closed and RootImage
      efi: define cache functions inside EFI_ENABLE ifdef
      core: store timestamps of unit load attempts
      core: refresh unit cache when building a transaction if UNIT_NOT_FOUND
      test: exercise systemd-dissect --mount in TEST-50-DISSECT
      test: exercise systemd-dissect with GPT and verity in TEST-50-DISSECT
      test: pre-assemble minimal image for TEST-50-DISSECT at build time
      test: exercise RootImage, RootHash and RootVerity in TEST-50-DISSECT
      basic/mkdir: use uid_is_valid instead of manual check
      shared/os-util: fix comment style to follow guidelines
      nspawn: use access/F_OK instead of stat to check for file existence
      nspawn: mount os-release in two steps to make it read-only
      nspawn: set container_host env vars before user arguments
      test: run systemd-dissect and systemd-run with log level debug in TEST-50-DISSECT
      dm-util: use CRYPT_DEACTIVATE_DEFERRED instead of ioctl
      verity: re-use already open devices if the hashes match
      NEWS: fix typo in path
      doc: update os-release spec with new path for container host's file
      portabled: update host's os-release path

Lucas Werkmeister (2):
      docs: fix misplaced close-paren
      docs: fix typo

Lukas Klingsbo (1):
      Add Kensington SlimBlade Trackball

Lukáš Nykrýn (1):
      docs: update information where to file bugs against RHEL/CentOS versions of systemd

Lénaïc Huard (1):
      udev: Fix SIGSEGV in AlternativeNamesPolicy handling

Maciej S. Szmigiero (1):
      hwdb: add another Logitech M705 mouse variant

MadMcCrow (1):
      Fix Chromebook Caroline board accelerometer not having correct orientation

Marc Kleine-Budde (1):
      udev: spi: include chip select number in ID_PATH

Marc-André Lureau (13):
      systemd-run: add --slice-inherit
      network: add TUN/TAP vt-* network rule for VMs
      shared: move in_addr_ifindex_name_from_string_auto() there
      network: fallback on resolved resolv.conf for DHCP server settings
      sd-dhcp-server: add sd_dhcp_server_set_callback()
      sd-dhcp-server: notify callback on lease changed
      networkd: start a DBus interface for the DHCP server
      networkd: expose DHCPServer interface on links
      sd-dhcp-client: make struct sd_dhcp_client_id reusable
      macro.h: add sizeof_field() helper
      sd-dhcp-client: add sd_dhcp_client_id_to_string()
      networkctl: factor out link_get_property()
      networkctl: print DHCP leases

Marcel Holtmann (1):
      hwdb: Update database of Bluetooth company identifiers

Martin Hundebøll (4):
      mount: add ReadWriteOnly property to fail on read-only mounts
      man: document ReadWriteOnly property for mount units
      fstab-generator: add x-systemd.rw-only option support
      man: document x-systemd.rw-only fstab option

Matt Ranostay (1):
      network: add CAN Termination tristate option

Matthew Leeds (1):
      man: Fix a typo of session

MaxVerevkin (1):
      hwdb: Pavilion 13 x360: Tablet mode and SYSRQ key

Maxim Fomin (1):
      Add 'bitlk' option to mount Bitlocker drives with cryptsetup.

Michael Biebl (1):
      man: fix conditional in homed.conf.xml

Michael Chapman (2):
      core/path: use escaped path in serialization
      core/path: recheck path specs when triggered unit changes state

Michael Gubbels (1):
      Fix typo.

Michael Marley (3):
      network: Don't send RA with zero router lifetime when restarting radv
      network: radv: Send RA on newly-added dynamic prefix
      network: Fix "Unknown section 'DHCPv6PrefixDelegation'." message

Michal Koutný (15):
      mkosi: Use distro-invariant rootprefix
      test: Simplify hostname checking
      mkosi: Unify environment for unit tests
      mkosi: Add openSUSE params file
      test: Fix build with !HAVE_LZ4 && HAVE_XZ
      mkosi: Fix openSUSE image declaration
      mkosi: Add openSUSE Tumbleweed packages
      mkosi: Add explicit --bootable=no openSUSE dependencies
      systemctl: Fix frozen state coloring
      tests: Fix description of test units
      cgroup: Make empty assignments reset to default
      cgroup: Allow empty assignments of Memory{Low,Min}=
      cgroup: Parse infinity properly for memory protections
      test: Test memory limit parsing
      missing: Add new Linux capabilities

Michal Sekletár (14):
      shared: split out NUMA code from cpu-set-util.c to numa-util.c
      core: add support for setting CPUAffinity= to special "numa" value
      sd-journal: remove the dead code and actually fix #14695
      device: make sure we emit PropertiesChanged signal once we set sysfs
      device: don't emit PropetiesChanged needlessly
      selinux: do preprocessor check only in selinux-access.c
      basic/cgroup-util: introduce cg_get_keyed_attribute_full()
      core: introduce support for cgroup freezer
      test: add test for cgroup v2 freezer support
      core/cgroup: fix return value of unit_cgorup_freezer_action()
      udev: make signal that we use to kill workers on timeout configurable
      test: add integration test for udev event timeout
      tests: sleep a bit and give kernel time to perform the action after manual freeze/thaw
      core: fix the return value in order to make sure we don't dipatch method return too early

Michał Bartoszkiewicz (1):
      docs: use bool in varlink interface definition

Mike Gilbert (2):
      safe_fork: unblock most signals before waiting for child
      safe_fork: use a cleanup function to restore signal mask in parent

Mike Kazantsev (1):
      NEWS: fix use of tabs instead of spaces for one item

Mikhail Novosyolov (2):
      rpm: avoid odd symbols in EOF indicator
      rpm: avoid hiding errors and output in *_create_package macros

Motiejus Jakštys (1):
      nspawn: mount custom paths before writing to /etc

Niccolò Maggioni (1):
      hwdb: add HP Spectre x360's mic mute switch

Niklas Hambüchen (1):
      man: Fix typo "multiplied with" -> "multiplied by"

Norbert Lange (8):
      Improve help for clang-format
      coredump: add zstandard support for coredumps
      install libzstd-dev for CI builds
      allow removal of initrd services
      dont install systemd-initctl, runlevel, telinit if no SYSV compat
      udev: single binary replacing udevd and udevadm
      build: skip installation of 2 files if feature is disabled
      clang-format: set Break afer enum to false

Paul Cercueil (2):
      sd-boot: Work around malformed CR key code
      sd-boot: Add small comments after device-specific key macros

Peter Hutterer (1):
      hwdb: remove support for MOUSE_WHEEL_TILT_*

Piero La Terza (1):
      homectl: fix a typo

Pieter Lexis (1):
      Add `shell` to machinectl ZSH completion

Piotr Drąg (4):
      po: update Polish translation
      catalog,po: update Polish translation
      catalog: update Polish translation
      catalog: update Polish translation

Rafael Fontenelle (1):
      po: update Brazilian Portuguese translation

Richard Petri (2):
      network: can: introduce a config parser function for bitrates
      network: can: add support for CAN-FD related properties

Ronan Pigott (1):
      shell-completion/zsh: update systemd-analyze completions

Ross Lagerwall (1):
      hwdb: Add accel orientation quirk for Geoflex laptop

Rubens Figueiredo (1):
      network: allow setting VLAN protocol on bridges

Sean-StarLabs (1):
      hwdb: add Star Lite Mk II and Star LabTop Mk III (#14621)

Sebastian Jennen (1):
      Add .clang-format file

Surhud More (1):
      Add support for HP Elitebook x360 1040 G6 micmute button

Susant Sahani (118):
      network: introduce bus method forcerenew for DHCP server
      network: Add policy in polkit DHCP server forcenenew
      network: Add support in networkctl for DHCP server forcerenew
      network: Introduce method to generate EUI-64 addresses
      network: radv introduce sd_radv_prefix_get_prefix
      network: introduce IPv6 prefix assign
      network: make use of generate_ipv6_eui_64_address
      network: TC introduce PFIFO
      network: TC introduce GRED, Generic Random Early Detection
      network: TC introduce sfb - Stochastic Fair Blue
      sd-netlink: introduce sd_netlink_message_append_s8() and friends
      network: tc: introduce cake
      network: Allow DHCPv6 client to start …
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

Successfully merging a pull request may close this issue.

3 participants