From c13a1c2829175b0e2887b8ac5feb3212277123c1 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 10 May 2021 14:55:45 +0200 Subject: [PATCH] Don't report current text in parser error messages The values of `yytext` and `yyleng` might not be properly defined when the error function is called (in particular if the lexer reached EOF). While this might just cause non-printable characters in the output, it could actually lead to a crash depending on where `yytext` points. Closes strongswan/strongswan#346. --- src/libstrongswan/settings/settings_parser.y | 9 +-------- src/starter/parser/parser.y | 9 +-------- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/src/libstrongswan/settings/settings_parser.y b/src/libstrongswan/settings/settings_parser.y index a541e6b9c..84106cd96 100644 --- a/src/libstrongswan/settings/settings_parser.y +++ b/src/libstrongswan/settings/settings_parser.y @@ -207,14 +207,7 @@ valuepart: */ static void settings_parser_error(parser_helper_t *ctx, const char *s) { - char *text = settings_parser_get_text(ctx->scanner); - int len = settings_parser_get_leng(ctx->scanner); - - if (len && text[len-1] == '\n') - { /* cut off newline at the end to avoid muti-line log messages */ - len--; - } - PARSER_DBG1(ctx, "%s [%.*s]", s, len, text); + PARSER_DBG1(ctx, "%s", s); } /** diff --git a/src/starter/parser/parser.y b/src/starter/parser/parser.y index 09325d975..323da8bd2 100644 --- a/src/starter/parser/parser.y +++ b/src/starter/parser/parser.y @@ -212,14 +212,7 @@ value: */ static void conf_parser_error(parser_helper_t *ctx, const char *s) { - char *text = conf_parser_get_text(ctx->scanner); - int len = conf_parser_get_leng(ctx->scanner); - - if (len && text[len-1] == '\n') - { /* cut off newline at the end to avoid muti-line log messages */ - len--; - } - PARSER_DBG1(ctx, "%s [%.*s]", s, (int)len, text); + PARSER_DBG1(ctx, "%s", s); } /** -- 2.47.3