Luca Boccassi
917e655457
analyze: add inspect-elf verb to parse package metadata
...
Parses and prints package metadata from executables, libraries and core files
$ systemd-analyze inspect-elf /tmp/core ../fsverity-utils/fsverityb /bin/bash --json=off --no-pager
__________________________
path: /tmp/core
elfType: coredump
elfArchitecture: AMD x86-64
module name: /tmp/crash
type: deb
name: hello
version: 1.0
architecture: amd64
os: debian
osVersion: 11
buildId: b33541096a09c29a0ba4ec5c69364a2711b7c269
module name: /usr/lib/x86_64-linux-gnu/libc-2.31.so
type: deb
name: hello
version: 1.0
architecture: amd64
os: debian
osVersion: 11
buildId: 54eef5ce96cf37cb175b0d93186836ca1caf470c
module name: /usr/lib/x86_64-linux-gnu/ld-2.31.so
type: deb
name: hello
version: 1.0
architecture: amd64
os: debian
osVersion: 11
buildId: 32438eb3b034da54caf58c7a65446639f7cfe274
__________________________________________________________________
path: /home/luca/git/systemd/../fsverity-utils/fsverity
elfType: executable
elfArchitecture: AMD x86-64
type: deb
name: fsverity-utils
version: 1.3-1
architecture: amd64
os: debian
debugInfoUrl: https://debuginfod.debian.net
buildId: 05b899e6ee0d3653e20458719b202ed3ca8d566f
_________________________
path: /bin/bash
elfType: executable
elfArchitecture: AMD x86-64
buildId: 4fef260f60e257d2dbd4126bf8add83837aea190
$
$ systemd-analyze inspect-elf /tmp/core ../fsverity-utils/fsverity /bin/bash /tmp/core.test-condition.1000.f9b9a84a9fd1482c9702d6afa6f6934b.37640.1637083078000000 --json=pretty --no-pager
{
"elfType" : "coredump",
"elfArchitecture" : "AMD x86-64",
"/home/bluca/git/fsverity-utils/fsverity" : {
"type" : "deb",
"name" : "fsverity-utils",
"version" : "1.3-1",
"buildId" : "7c895ecd2a271f93e96268f479fdc3c64a2ec4ee"
},
"/home/bluca/git/fsverity-utils/libfsverity.so.0" : {
"type" : "deb",
"name" : "fsverity-utils",
"version" : "1.3-1",
"buildId" : "b5e428254abf14237b0ae70ed85fffbb98a78f88"
}
}
{
"elfType" : "executable",
"elfArchitecture" : "AMD x86-64",
"/home/bluca/git/systemd/../fsverity-utils/fsverity" : {
"type" : "deb",
"name" : "fsverity-utils",
"version" : "1.3-1",
"buildId" : "7c895ecd2a271f93e96268f479fdc3c64a2ec4ee"
}
}
{
"elfType" : "executable",
"elfArchitecture" : "AMD x86-64",
"/bin/bash" : {
"buildId" : "3313b4cb119dcce16927a9b6cc61dcd97dfc4d59"
}
}
{
"elfType" : "coredump",
"elfArchitecture" : "AMD x86-64"
}
2021-11-30 23:14:07 +00:00
Luca Boccassi
d48c2721b6
elf-util: add function to parse metadata out of ELF objects
...
Parse the packaging metadata from an ELF object, if any, and
print a pretty table following the spec defined at:
https://systemd.io/COREDUMP_PACKAGE_METADATA/
2021-11-30 23:14:07 +00:00
Zbigniew Jędrzejewski-Szmek
4248b9f6a5
Merge pull request #21580 from bluca/core_fork
...
Switch coredump ELF parsing to fork+dlopen
2021-11-30 21:49:53 +01:00
Yu Watanabe
528da64a0c
network: address: drop deprecated temporary address
...
Fixes #19838 .
2021-11-30 18:17:23 +01:00
Luca Boccassi
d2d8bd3a17
TODO: update dlopen todo list
2021-11-30 16:49:59 +00:00
Luca Boccassi
56f2a72919
elf-util: switch libelf/libdw to dlopen()
...
In order to avoid inflating the dependency list for the core
library, use dlopen when inspecting elfs, since it's only
used in two non-core executables.
2021-11-30 16:49:59 +00:00
Luca Boccassi
5361f62d6d
meson: remove libdw dependency from pstore
...
systemd-pstore does not use any symbol from libdw, and never did,
but the dependency was listed since the beginning
2021-11-30 16:49:59 +00:00
Luca Boccassi
889f252973
elf-util: add stub for builds without libdw
2021-11-30 16:49:59 +00:00
Luca Boccassi
5564c6d802
elf-util: split out helper to parse build-id
2021-11-30 16:49:59 +00:00
Luca Boccassi
ea680f0524
coredump: move elf parsing utilities to src/shared/elf-util
2021-11-30 16:49:59 +00:00
Luca Boccassi
f05b5cddfb
coredump: always log on failure in parse_core()
2021-11-30 16:49:58 +00:00
Luca Boccassi
f0e2377a68
coredump: make the buffer optional when analyzing a core file
...
Allow later usage when we only want to fetch the JSON packaging metadata
2021-11-30 16:49:58 +00:00
Luca Boccassi
61aea456c1
coredump: analyze object with libdwelf in forked process
...
Parsing objects is risky as data could be malformed or malicious,
so avoid doing that from the main systemd-coredump process and
instead fork another process, and set it to avoid generating
core files itself.
2021-11-30 16:49:58 +00:00
Luca Boccassi
67f7675f47
coredump: use _cleanup_ pattern
...
Note that c.f needs to be closed _before_ taking or freeing
the buf pointer, as it might be invalidated
2021-11-30 16:49:58 +00:00
Luca Boccassi
fe165e70cd
coredump: flush accumulating buffer after parsing core file
2021-11-30 16:49:58 +00:00
Luca Boccassi
0e62d0340c
coredump: check return of dwarf_getscopes
2021-11-30 16:49:58 +00:00
Zbigniew Jędrzejewski-Szmek
8592a0d799
Merge pull request #21578 from bluca/json_spec
...
docs: clarify JSON terms in COREDUMP_PACKAGE_METADATA
2021-11-30 16:36:36 +01:00
Rasmus Villemoes
4ced52595f
sysusers: avoid creating spurious "nobody" group
...
On distros using Debian's base-passwd, the name of the group with gid 65534 is
nogroup. Currently, systemd-sysusers creates a spurious "nobody" group
systemd-sysusers[243]: Creating group nobody with gid 996
That's both confusing and redundant, as the nobody user still has primary group
65534 aka nogroup, and the nobody group simply goes completely unused.
So explicitly specify the primary group of the nobody user, and add a line
ensuring that that group exists.
This is not a problem for Debian (or Ubuntu) itself, as they add their own
version of basic.conf in their systemd build logic. But it appears on for
example Yocto/OpenEmbedded.
2021-11-30 16:16:25 +01:00
Luca Boccassi
3d170ca580
Merge pull request #21573 from keszybz/one-more-table-sort
...
One more table sort and man page updates
2021-11-30 14:52:08 +00:00
Luca Boccassi
45f822ceb3
docs: clarify ELF note usage in COREDUMP_PACKAGE_METADATA
2021-11-30 14:42:43 +00:00
Yu Watanabe
b224530f5f
Merge pull request #21559 from jcg190701/main
...
fix ConditionDirectoryNotEmpty when it comes to a Non-directory file
2021-11-30 22:34:21 +09:00
Zbigniew Jędrzejewski-Szmek
5143e657d2
basic/architecture: sort and reindent one more table
...
No idea why I didn't do this one in the previous round.
2021-11-30 13:54:29 +01:00
Zbigniew Jędrzejewski-Szmek
77e289abb4
man: fix typo
...
Follow-up for c896eb7ad6 .
2021-11-30 13:54:27 +01:00
Zbigniew Jędrzejewski-Szmek
17cd1f627b
man: add missing plural and reorder sentence
...
We shouldn't explain what a value does before listing valid values…
Follow-up for 4f1ac4a38d .
2021-11-30 13:52:32 +01:00
Luca Boccassi
bedd92b956
docs: clarify JSON terms in COREDUMP_PACKAGE_METADATA
2021-11-30 12:36:16 +00:00
Yu Watanabe
a6f44d610c
tree-wide: fix typo
2021-11-30 12:30:07 +00:00
Luca Boccassi
dc063e0978
Merge pull request #21568 from yuwata/network-fix-json-format
...
network: fix json format
2021-11-30 09:13:03 +00:00
jiangchuangang
7c4c9948d0
fix ConditionPathIsReadWrite when path does not exist.
2021-11-30 16:47:54 +08:00
Yu Watanabe
718f0a74ab
man: fix copy-and-paste mistake
2021-11-30 09:29:51 +01:00
jiangchuangang
193105f2d0
fix ConditionDirectoryNotEmpty when it comes to a Non-directory file
2021-11-30 09:16:15 +08:00
Yu Watanabe
94f0bd624b
test-network: add more basic tests for network json formats
2021-11-30 10:03:51 +09:00
Yu Watanabe
d27e9b0f83
network: json: add missing initialization
...
Fixes CID#1466513.
2021-11-30 10:03:51 +09:00
Yu Watanabe
b89931ba28
json: make JSON_BUILD_PAIR_IN_ADDR_NON_NULL or friends handle NULL gracefully
...
Fixes #21567 .
2021-11-30 10:03:51 +09:00
Amir Omidi
a41699c90b
systemctl: display how long a systemd service will run ( #21494 )
2021-11-30 09:24:18 +09:00
Zbigniew Jędrzejewski-Szmek
8e560cd090
Merge pull request #21532 from yuwata/network-json-more
...
network: add more json entries
2021-11-29 21:26:56 +01:00
Zbigniew Jędrzejewski-Szmek
08e70b4a21
Merge pull request #21541 from bluca/analyze_security_profile
...
analyze: add --profile switch to security verb
2021-11-29 21:23:34 +01:00
Jan Janssen
0289441e09
sd-boot: Fix assert failure in random-seed.c
...
Fixes : #21556
2021-11-30 03:10:03 +09:00
Michal Sekletar
c29e6a9530
unit: add jobs that were skipped because of ratelimit back to run_queue
...
Assumption in edc027b was that job we first skipped because of active
ratelimit is still in run_queue. Hence we trigger the queue and dispatch
it in the next iteration. Actually we remove jobs from run_queue in
job_run_and_invalidate() before we call unit_start(). Hence if we want
to attempt to run the job again in the future we need to add it back
to run_queue.
Fixes #21458
2021-11-30 03:06:35 +09:00
Nacho Barrientos
081f44859a
Byte order to host before using the lifetime
...
I've seen this in `NetworkManager-1.34.0-0.3.el8.x86_64` (latest in CentOS
Stream 8 at the time of writing this message) which does not use the latest
Systemd but probably the code base is the same (see
https://github.com/NetworkManager/NetworkManager/commit/51f93e00a23fbd09f5ad96da6290bf4ca737d46a ).
Before the patch:
```
libsystemd: eth0: DHCPv6 client: T1 expires in 34y 3w 6d 45min 31s
libsystemd: eth0: DHCPv6 client: T2 expires in 54y 5month 3w 3d 23h 20min 35s
```
After the patch:
```
libsystemd: eth0: DHCPv6 client: T1 expires in 3d 7h 58min 3s
libsystemd: eth0: DHCPv6 client: T2 expires in 5d 2h 26min 50s
```
same box (x86_64 system) and same DHCPv6 server.
This regression has likely been introduced by 8a8955507a .
2021-11-30 03:05:02 +09:00
Marco Scardovi
55dad038b2
Add missing greater than/less than tab on some HP
...
Some HP keyboards (like https://h30434.www3.hp.com/t5/image/serverpage/image-id/203235i01AD626584587DA1?v=v2 ) have <> between AltGr and left arrow. This add the fix and make it working again
2021-11-29 16:26:27 +00:00
Zbigniew Jędrzejewski-Szmek
8fb444011e
Merge pull request #21534 from yuwata/udev-accept-longer-hw-address
...
udev/net: accept longer HW address
2021-11-29 14:00:52 +01:00
Zbigniew Jędrzejewski-Szmek
4b658ff651
Merge pull request #21531 from keszybz/log2-tables
...
Optimize log2 tables
2021-11-29 13:58:49 +01:00
Zbigniew Jędrzejewski-Szmek
1e135e9780
Merge pull request #21537 from medhefgo/boot-sbat
...
meson: Default to sbat-distro=auto
2021-11-29 11:30:25 +01:00
Luca Boccassi
c0775eb787
coredump: fix parsing metadata without access to executable
...
This was broken in a subtle way: we'd get an ELF ref, but not the right one,
so no metadata note would be found.
Change the parsing function to return 1 when it finds something, so that
we can return early only when that happens.
2021-11-29 11:25:48 +01:00
Zbigniew Jędrzejewski-Szmek
48c67fdfb1
meson: upgrade warning about bad init values to an error
...
We never expect to get this warning, it is most likely to occur if
somebody messes up enumeration values.
2021-11-29 11:16:23 +01:00
Zbigniew Jędrzejewski-Szmek
8a7da94082
networkd: replace a table with log2 fields by a list
2021-11-29 11:16:15 +01:00
Zbigniew Jędrzejewski-Szmek
0580badc15
networkd: align table
2021-11-29 11:16:07 +01:00
Zbigniew Jędrzejewski-Szmek
19aa7eeb6c
networkd: replace a table with log2 fields by a list
2021-11-29 11:15:58 +01:00
Zbigniew Jędrzejewski-Szmek
7396e01484
networkd: replace a table with log2 fields by a list
2021-11-29 11:15:50 +01:00
Zbigniew Jędrzejewski-Szmek
67b65e1104
networkd: replace a table with log2 fields by a list
...
The code looks a bit more complicated, but the compiler generates a simpler and
more compact text.
An additional advantage is that if any of the fields were repeating or not
power-of-two, the compiler would warn about an overridden entry in the table.
2021-11-29 11:15:31 +01:00