From 95534ef8f7558b5f7f93991043441adb9c7ddf33 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 15 Jan 2025 23:43:37 +0900 Subject: [PATCH] udev-rules: ignore whole command result if it is too long and does not contain newline (cherry picked from commit 68b1e1b61ab333bb4dee4a43373bad54080e755f) Resolves: RHEL-75774 --- src/udev/udev-rules.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c index 53370f6085..9aa98a3b3c 100644 --- a/src/udev/udev-rules.c +++ b/src/udev/udev-rules.c @@ -2379,15 +2379,18 @@ static int udev_rule_apply_token_to_event( } if (truncated) { - bool found = false; + log_event_debug(event, token, "Result of \"%s\" is too long and truncated, ignoring the last line of the result.", buf); /* Drop the last line. */ + bool found = false; for (char *p = PTR_SUB1(buf + strlen(buf), buf); p; p = PTR_SUB1(p, buf)) if (strchr(NEWLINE, *p)) { *p = '\0'; found = true; - } else if (found) break; + } + if (!found) + buf[0] = '\0'; } r = strv_split_newlines_full(&lines, result, EXTRACT_RETAIN_ESCAPE);