From: Masatake YAMATO Date: Mon, 4 Apr 2022 18:58:59 +0000 (+0900) Subject: lsfd: (filter): parse "" in filter expression correctly X-Git-Tag: v2.39-rc1~727^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cdbb34d0db5af6a4ebc7eff121eac1c818b9fce6;p=thirdparty%2Futil-linux.git 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 --- 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);