chiark / gitweb /
core: refuse doing %h, %s, %U specifier resolving in PID 1
[elogind.git] / src / shared / log.c
index 2531e0da0376cbba486e12fa243f73a70103b4f6..2404de85e32bb849c4b6a55e7fc288043d2f1e6f 100644 (file)
@@ -690,6 +690,9 @@ int log_meta_object(
 static void log_assert(int level, const char *text, const char *file, int line, const char *func, const char *format) {
         static char buffer[LINE_MAX];
 
+        if (_likely_(LOG_PRI(level) > log_max_level))
+                return;
+
         snprintf(buffer, sizeof(buffer), format, text, file, line, func);
 
         char_array_0(buffer);
@@ -710,6 +713,7 @@ _noreturn_ void log_assert_failed_unreachable(const char *text, const char *file
 }
 
 void log_assert_failed_return(const char *text, const char *file, int line, const char *func) {
+        PROTECT_ERRNO;
         log_assert(LOG_DEBUG, text, file, line, func, "Assertion '%s' failed at %s:%u, function %s(). Ignoring.");
 }