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:
parent
354171a5db
commit
93bb67090c
@ -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) {
|
||||
|
||||
/*
|
||||
|
@ -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(
|
||||
|
Loading…
Reference in New Issue
Block a user