From cdbb34d0db5af6a4ebc7eff121eac1c818b9fce6 Mon Sep 17 00:00:00 2001 From: Masatake YAMATO Date: Tue, 5 Apr 2022 03:58:59 +0900 Subject: [PATCH] lsfd: (filter): parse "" in filter expression correctly The original code cannot convert "" in filter expression to a token correctly. The following command line exposes the bug this change fixes: # ./lsfd -o+ENDPOINTS -Q '(TYPE == "")' zsh: IOT instruction sudo ./lsfd -Q '(TYPE == "")' Signed-off-by: Masatake YAMATO --- misc-utils/lsfd-filter.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/misc-utils/lsfd-filter.c b/misc-utils/lsfd-filter.c index b70da18d0b..844adb0a2c 100644 --- a/misc-utils/lsfd-filter.c +++ b/misc-utils/lsfd-filter.c @@ -438,9 +438,11 @@ static void parser_read_str(struct parser *parser, struct token *token, char del return; } escape = false; - } else if (c == delimiter) + } else if (c == delimiter) { + if (token->val.str == NULL) + token->val.str = xstrdup(""); return; - else if (c == '\\') + } else if (c == '\\') escape = true; else xstrputc(&token->val.str, c); -- 2.47.2