1
0
mirror of https://github.com/systemd/systemd synced 2026-04-07 23:54:50 +02:00

Compare commits

...

2 Commits

Author SHA1 Message Date
Dominique Martinet
3da361064b unit_is_bound_by_inactive: fix return pointer check
*ret_culprit should be set if ret_culprit has been passed a non-null value,
checking the previous *ret_culprit value does not make sense.

This would cause the culprit to not properly be assigned, leading to
pid1 crash when a unit could not be stopped.

Fixes: #21476
2021-11-24 18:42:37 +01:00
Zbigniew Jędrzejewski-Szmek
989db9b399 shell-completion: add journalctl --facility
Fixes #21484.
2021-11-24 12:44:34 +00:00
3 changed files with 15 additions and 3 deletions

View File

@ -32,6 +32,7 @@ __get_machines() {
}
__syslog_priorities=(emerg alert crit err warning notice info debug)
__syslog_facilities=(kern user mail daemon auth syslog lpr news uucp cron authpriv ftp local0 local1 local2 local3 local4 local5 local6 local7)
_journalctl() {
local field_vals= cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
@ -44,7 +45,7 @@ _journalctl() {
--show-cursor --dmesg -k --pager-end -e -r --reverse
--utc -x --catalog --no-full --force --dump-catalog
--flush --rotate --sync --no-hostname -N --fields'
[ARG]='-b --boot -D --directory --file -F --field -t --identifier
[ARG]='-b --boot -D --directory --file -F --field -t --identifier --facility
-M --machine -o --output -u --unit --user-unit -p --priority
--root --case-sensitive'
[ARGUNKNOWN]='-c --cursor --interval -n --lines -S --since -U --until
@ -81,6 +82,9 @@ _journalctl() {
--machine|-M)
comps=$( __get_machines )
;;
--facility)
comps=${__syslog_facilities[*]}
;;
--priority|-p)
comps=${__syslog_priorities[*]}
compopt -o nosort

View File

@ -56,6 +56,13 @@ _journalctl_boots() {
"bootid:boot ids:compadd -a _bootid"
}
(( $+functions[_journalctl_facilities] )) ||
_journalctl_facilities() {
local -a _journalctl_facilities
_journalctl_facilities=(kern user mail daemon auth syslog lpr news uucp cron authpriv ftp local0 local1 local2 local3 local4 local5 local6 local7)
_describe 'possible values' _journalctl_facilities
}
# Build arguments for "journalctl" to be used in completion.
# Use both --user and --system modes, they are not exclusive.
local -a _modes; _modes=(--user --system)
@ -103,7 +110,8 @@ _arguments -s \
{-u+,--unit=}'[Show data only from the specified unit]:units:_journalctl_field_values _SYSTEMD_UNIT' \
'--user-unit=[Show data only from the specified user session unit]:units:_journalctl_field_values USER_UNIT' \
{-p+,--priority=}'[Show only messages within the specified priority range]:priority:_journalctl_field_values PRIORITY' \
{-t+,--identifier=}'[Show only messages with the specified syslog identifier]:identifier:_journalctl_field_values SYSLOG_IDENTIFIER' \
'--facility=[Filter messages by facility]:facility:_journalctl_facilities' \
{-t+,--identifier=}'[Filter messages by syslog identifier]:identifier:_journalctl_field_values SYSLOG_IDENTIFIER' \
{-c+,--cursor=}'[Start showing entries from the specified cursor]:cursors:_journalctl_field_values __CURSORS' \
'--cursor-file=[Show entries using cursor store in file]:file:_files' \
'--after-cursor=[Start showing entries from after the specified cursor]:cursors:_journalctl_field_values __CURSORS' \

View File

@ -2129,7 +2129,7 @@ bool unit_is_bound_by_inactive(Unit *u, Unit **ret_culprit) {
continue;
if (UNIT_IS_INACTIVE_OR_FAILED(unit_active_state(other))) {
if (*ret_culprit)
if (ret_culprit)
*ret_culprit = other;
return true;