From: Łukasz Stelmach Date: Thu, 25 Apr 2024 14:10:49 +0000 (+0200) Subject: Fix _do_log conditions in log_exec_* macros X-Git-Tag: v256-rc1~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e85be4983d974063b5210e6df77d9109ffbc9932;p=thirdparty%2Fsystemd.git Fix _do_log conditions in log_exec_* macros The expression for calculation of the _do_log values in the log_exec_* macros need to be the same as the unit_log_level_test() function, used to calculate _do_log in unit.h. The only difference between execute.h and unit.h is the lack of the Unit structure. Fixes: b646fc324a ("core: ensure execute/spawn functions can work without Unit object") Fixes: 210ca71cb5 ("core/execute: clean up log_exec_full_errno and friends") Signed-off-by: Łukasz Stelmach --- diff --git a/src/core/execute.h b/src/core/execute.h index 6a313640de2..0719d3904a8 100644 --- a/src/core/execute.h +++ b/src/core/execute.h @@ -634,8 +634,8 @@ bool exec_needs_ipc_namespace(const ExecContext *context); const ExecContext *_c = (ec); \ const ExecParameters *_p = (ep); \ const int _l = (level); \ - bool _do_log = _c->log_level_max >= 0 && \ - _c->log_level_max < LOG_PRI(_l); \ + bool _do_log = _c->log_level_max < 0 || \ + _c->log_level_max >= LOG_PRI(_l); \ LOG_CONTEXT_PUSH_IOV(_c->log_extra_fields, \ _c->n_log_extra_fields); \ !_do_log ? -ERRNO_VALUE(error) : \ @@ -672,8 +672,8 @@ bool exec_needs_ipc_namespace(const ExecContext *context); const ExecContext *_c = (ec); \ const ExecParameters *_p = (ep); \ const int _l = (level); \ - bool _do_log = _c->log_level_max >= 0 && \ - _c->log_level_max < LOG_PRI(_l); \ + bool _do_log = _c->log_level_max < 0 || \ + _c->log_level_max >= LOG_PRI(_l); \ LOG_CONTEXT_PUSH_IOV(_c->log_extra_fields, \ _c->n_log_extra_fields); \ !_do_log ? -ERRNO_VALUE(error) : \