Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion man/journald.conf.xml
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@
and use the smaller of the two values.</para>

<para>The first pair defaults to 10% and the second to 15% of
the size of the respective file system, but each value is
the size of the respective file system, but each of the calculated default values is
capped to 4G. If the file system is nearly full and either
<varname>SystemKeepFree=</varname> or
<varname>RuntimeKeepFree=</varname> are violated when
Expand Down
21 changes: 14 additions & 7 deletions src/coredump/coredump.c
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,12 @@ enum {
META_ARGV_SIGNAL, /* %s: number of signal causing dump */
META_ARGV_TIMESTAMP, /* %t: time of dump, expressed as seconds since the Epoch (we expand this to μs granularity) */
META_ARGV_RLIMIT, /* %c: core file size soft resource limit */
META_ARGV_HOSTNAME, /* %h: hostname */
_META_ARGV_REQUIRED,
/* The fields below were added to kernel/core_pattern at later points, so they might be missing. */
META_ARGV_HOSTNAME = _META_ARGV_REQUIRED, /* %h: hostname */
_META_ARGV_MAX,
/* If new fields are added, they should be added here, to maintain compatibility
* with callers which don't know about the new fields. */

/* The following indexes are cached for a couple of special fields we use (and
* thereby need to be retrieved quickly) for naming coredump files, and attaching
Expand All @@ -105,7 +109,7 @@ enum {
_META_MANDATORY_MAX,

/* The rest are similar to the previous ones except that we won't fail if one of
* them is missing. */
* them is missing in a message sent over the socket. */

META_EXE = _META_MANDATORY_MAX,
META_UNIT,
Expand Down Expand Up @@ -1220,14 +1224,17 @@ static int gather_pid_metadata_from_argv(
char *t;

/* We gather all metadata that were passed via argv[] into an array of iovecs that
* we'll forward to the socket unit */
* we'll forward to the socket unit.
*
* We require at least _META_ARGV_REQUIRED args, but will accept more.
* We know how to parse _META_ARGV_MAX args. The rest will be ignored. */

if (argc < _META_ARGV_MAX)
if (argc < _META_ARGV_REQUIRED)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Not enough arguments passed by the kernel (%i, expected %i).",
argc, _META_ARGV_MAX);
"Not enough arguments passed by the kernel (%i, expected between %i and %i).",
argc, _META_ARGV_REQUIRED, _META_ARGV_MAX);

for (int i = 0; i < _META_ARGV_MAX; i++) {
for (int i = 0; i < MIN(argc, _META_ARGV_MAX); i++) {

t = argv[i];

Expand Down
4 changes: 3 additions & 1 deletion src/home/homework-mount.c
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,9 @@ int home_move_mount(const char *mount_suffix, const char *target) {
} else
d = HOME_RUNTIME_WORK_DIR;

(void) mkdir_p(target, 0700);
r = mkdir_p(target, 0700);
if (r < 0)
return log_error_errno(r, "Failed to create directory '%s': %m", target);

r = mount_nofollow_verbose(LOG_ERR, d, target, NULL, MS_BIND, NULL);
if (r < 0)
Expand Down
2 changes: 1 addition & 1 deletion test/test-network/systemd-networkd-tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -3954,7 +3954,7 @@ def test_qdisc_tbf(self):
output = check_output('tc qdisc show dev dummy98')
print(output)
self.assertRegex(output, 'qdisc tbf 35: root')
self.assertRegex(output, 'rate 1Gbit burst 5000b peakrate 100Gbit minburst 987500b lat 70(.0)?ms')
self.assertRegex(output, 'rate 1Gbit burst 5000b peakrate 100Gbit minburst (987500b|999200b) lat 70(.0)?ms')

@expectedFailureIfModuleIsNotAvailable('sch_teql')
def test_qdisc_teql(self):
Expand Down
4 changes: 4 additions & 0 deletions test/units/testsuite-73.sh
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,10 @@ testcase_vc_keymap() {

for i in $(localectl list-keymaps); do
# set VC keymap

# Skip lv keymap and friends, otherwise the sanitizer detects heap-buffer-overflow in libxkbcommon.
[[ "$i" =~ ^lv ]] && continue

assert_rc 0 localectl set-keymap "$i"
output=$(localectl)

Expand Down
18 changes: 11 additions & 7 deletions test/units/testsuite-74.coredump.sh
Original file line number Diff line number Diff line change
Expand Up @@ -156,14 +156,18 @@ rm -f /tmp/core.{output,redirected}
(! "${UNPRIV_CMD[@]}" coredumpctl dump "$CORE_TEST_BIN" >/dev/null)

# --backtrace mode
# Pass one of the existing journal coredump records to systemd-coredump and
# use our PID as the source to make matching the coredump later easier
# systemd-coredump args: PID UID GID SIGNUM TIMESTAMP CORE_SOFT_RLIMIT HOSTNAME
# Pass one of the existing journal coredump records to systemd-coredump.
# Use our PID as the source to be able to create a PIDFD and to make matching easier.
# systemd-coredump args: PID UID GID SIGNUM TIMESTAMP CORE_SOFT_RLIMIT [HOSTNAME]
journalctl -b -n 1 --output=export --output-fields=MESSAGE,COREDUMP COREDUMP_EXE="/usr/bin/test-dump" |
/usr/lib/systemd/systemd-coredump --backtrace $$ 0 0 6 1679509994 12345 mymachine
# Wait a bit for the coredump to get processed
timeout 30 bash -c "while [[ \$(coredumpctl list -q --no-legend $$ | wc -l) -eq 0 ]]; do sleep 1; done"
coredumpctl info "$$"
/usr/lib/systemd/systemd-coredump --backtrace $$ 0 0 6 1679509900 12345
journalctl -b -n 1 --output=export --output-fields=MESSAGE,COREDUMP COREDUMP_EXE="/usr/bin/test-dump" |
/usr/lib/systemd/systemd-coredump --backtrace $$ 0 0 6 1679509901 12345 mymachine
# Wait a bit for the coredumps to get processed
timeout 30 bash -c "while [[ \$(coredumpctl list -q --no-legend $$ | wc -l) -lt 2 ]]; do sleep 1; done"
coredumpctl info $$
coredumpctl info COREDUMP_TIMESTAMP=1679509900000000
coredumpctl info COREDUMP_TIMESTAMP=1679509901000000
coredumpctl info COREDUMP_HOSTNAME="mymachine"

# This used to cause a stack overflow
Expand Down
Loading