]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Fix _do_log conditions in log_exec_* macros
authorŁukasz Stelmach <l.stelmach@samsung.com>
Thu, 25 Apr 2024 14:10:49 +0000 (16:10 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 25 Apr 2024 16:24:36 +0000 (18:24 +0200)
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 <l.stelmach@samsung.com>
src/core/execute.h

index 6a313640de2d3628affe42c70f2dc14e03980239..0719d3904a87f7f54ff98646ca449c6567ecfdf8 100644 (file)
@@ -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) :                                  \