← Commit list

69622ff37d

x2018
x2018
2025-11-06
SUCCESS Duration: 142s

Subject

tool_help: add checks to avoid unsigned wrap around

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

src/tool_help.c+6 -2
@@ -87,14 +87,18 @@ static void print_category(unsigned int category, unsigned int cols)
if(len > longdesc)
longdesc = len;
}
- if(longopt + longdesc > cols)
+
+ if(longdesc > cols)
+ longopt = 0; /* avoid wrap-around */
+ else if(longopt + longdesc > cols)
longopt = cols - longdesc;
for(i = 0; helptext[i].opt; ++i)
if(helptext[i].categories & category) {
size_t opt = longopt;
size_t desclen = strlen(helptext[i].desc);
- if(opt + desclen >= (cols - 2)) {
+ /* avoid wrap-around */
+ if(cols >= 2 && opt + desclen >= (cols - 2)) {
if(desclen < (cols - 2))
opt = (cols - 3) - desclen;
else