diff options
author | Luca Boccassi <bluca@debian.org> | 2023-04-26 14:19:33 +0100 |
---|---|---|
committer | Luca Boccassi <bluca@debian.org> | 2023-04-26 16:12:00 +0100 |
commit | 7f3bb8f20dcccaceea8b1ee05f0560b81162037b (patch) | |
tree | 8a9f0a71bcd0afaa00124d8fc616bdaf10321186 /src/shared | |
parent | 37232d55a7bcace37280e28b207c85f5ca9b3f6b (diff) | |
download | systemd-7f3bb8f20dcccaceea8b1ee05f0560b81162037b.tar.gz |
coredump filter: add mask for 'all' using UINT32_MAX, not UINT64_MAX
The kernel returns ERANGE when UINT64_MAX is passed. Create a mask
and use UINT32_max, which is accepted, so that future bits will also
be set.
Diffstat (limited to 'src/shared')
-rw-r--r-- | src/shared/coredump-util.c | 2 | ||||
-rw-r--r-- | src/shared/coredump-util.h | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/shared/coredump-util.c b/src/shared/coredump-util.c index dc137317a9..805503f366 100644 --- a/src/shared/coredump-util.c +++ b/src/shared/coredump-util.c @@ -46,7 +46,7 @@ int coredump_filter_mask_from_string(const char *s, uint64_t *ret) { } if (streq(n, "all")) { - m = UINT64_MAX; + m = COREDUMP_FILTER_MASK_ALL; continue; } diff --git a/src/shared/coredump-util.h b/src/shared/coredump-util.h index 99dbfde730..4f54bb94c0 100644 --- a/src/shared/coredump-util.h +++ b/src/shared/coredump-util.h @@ -22,6 +22,9 @@ typedef enum CoredumpFilter { 1u << COREDUMP_FILTER_ELF_HEADERS | \ 1u << COREDUMP_FILTER_PRIVATE_HUGE) +/* The kernel doesn't like UINT64_MAX and returns ERANGE, use UINT32_MAX to support future new flags */ +#define COREDUMP_FILTER_MASK_ALL UINT32_MAX + const char* coredump_filter_to_string(CoredumpFilter i) _const_; CoredumpFilter coredump_filter_from_string(const char *s) _pure_; int coredump_filter_mask_from_string(const char *s, uint64_t *ret); |