From: Daniel Stenberg Date: Tue, 6 Aug 2024 14:58:39 +0000 (+0200) Subject: tool_help: handle longer lines, exit on too long X-Git-Tag: curl-8_10_0~354 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=53146dd262c632f44cd283194d724911a1dfa60e;p=thirdparty%2Fcurl.git tool_help: handle longer lines, exit on too long Follow-up to 9a0cf56471c1a - increase the buffer to handle 160 characters manpage lines - add another assert - if the line buffer gets full, abort Ideally, we add another step in the build process that makes the build fail if this long lines are used. Closes #14422 --- diff --git a/src/tool_help.c b/src/tool_help.c index b4dce29904..3e21efd7a7 100644 --- a/src/tool_help.c +++ b/src/tool_help.c @@ -213,12 +213,18 @@ bool helpscan(unsigned char *buf, size_t len, struct scan_ctx *ctx) if(buf[i] == '\n') { DEBUGASSERT(ctx->olen < sizeof(ctx->obuf)); + if(ctx->olen == sizeof(ctx->obuf)) + return FALSE; /* bail out */ ctx->obuf[ctx->olen++] = 0; ctx->olen = 0; puts(ctx->obuf); } - else + else { + DEBUGASSERT(ctx->olen < sizeof(ctx->obuf)); + if(ctx->olen == sizeof(ctx->obuf)) + return FALSE; /* bail out */ ctx->obuf[ctx->olen++] = buf[i]; + } } return TRUE; } diff --git a/src/tool_help.h b/src/tool_help.h index 0a334464d2..4b40715375 100644 --- a/src/tool_help.h +++ b/src/tool_help.h @@ -37,7 +37,7 @@ struct scan_ctx { size_t elen; size_t olen; char rbuf[40]; - char obuf[80]; + char obuf[160]; unsigned char show; /* start as at 0. trigger match moves it to 1 arg match moves it to 2