From 8ce20320b23feb93bcf02b6497120a491bf81790 Mon Sep 17 00:00:00 2001 From: Philippe Teuwen Date: Sat, 4 Sep 2021 02:57:16 +0200 Subject: [PATCH] Fix segfault on 'rem ' --- client/deps/cliparser/cliparser.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/client/deps/cliparser/cliparser.c b/client/deps/cliparser/cliparser.c index 2a5804550..cae61a9e8 100644 --- a/client/deps/cliparser/cliparser.c +++ b/client/deps/cliparser/cliparser.c @@ -149,6 +149,7 @@ int CLIParserParseStringEx(CLIParserContext *ctx, const char *str, void *vargtab int len = strlen(str); memset(ctx->buf, 0x00, ARRAYLEN(ctx->buf)); char *bufptr = ctx->buf; + char *bufptrend = ctx->buf + ARRAYLEN(ctx->buf) - 1; char *spaceptr = NULL; enum ParserState state = PS_FIRST; @@ -198,6 +199,11 @@ int CLIParserParseStringEx(CLIParserContext *ctx, const char *str, void *vargtab bufptr++; break; } + if (bufptr > bufptrend) { + PrintAndLogEx(ERR, "ERROR: Line too long\n"); + fflush(stdout); + return 2; + } } return CLIParserParseArg(ctx, argc, argv, vargtable, vargtableLen, allowEmptyExec);