1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-11 09:18:07 +03:00

log: introduce a knob to make assert_return() critical

These can be used to check if we trigger assert_return()
unexpectedly.

Co-authored-by: Frantisek Sumsal <frantisek@sumsal.cz>
This commit is contained in:
Yu Watanabe 2023-11-16 10:48:37 +09:00
parent 354171a5db
commit 93bb67090c
2 changed files with 16 additions and 0 deletions

View File

@ -69,6 +69,7 @@ static bool upgrade_syslog_to_journal = false;
static bool always_reopen_console = false;
static bool open_when_needed = false;
static bool prohibit_ipc = false;
static bool assert_return_is_critical = false;
/* Akin to glibc's __abort_msg; which is private and we hence cannot
* use here. */
@ -981,6 +982,10 @@ void log_assert_failed_return(
const char *file,
int line,
const char *func) {
if (assert_return_is_critical)
log_assert_failed(text, file, line, func);
PROTECT_ERRNO;
log_assert(LOG_DEBUG, text, file, line, func,
"Assertion '%s' failed at %s:%u, function %s(). Ignoring.");
@ -1232,6 +1237,14 @@ static int log_set_ratelimit_kmsg_from_string(const char *e) {
return 0;
}
void log_set_assert_return_is_critical(bool b) {
assert_return_is_critical = b;
}
bool log_get_assert_return_is_critical(void) {
return assert_return_is_critical;
}
static int parse_proc_cmdline_item(const char *key, const char *value, void *data) {
/*

View File

@ -331,6 +331,9 @@ void log_set_open_when_needed(bool b);
* stderr, the console or kmsg */
void log_set_prohibit_ipc(bool b);
void log_set_assert_return_is_critical(bool b);
bool log_get_assert_return_is_critical(void) _pure_;
int log_dup_console(void);
int log_syntax_internal(