Message ID | 20240123043010.266210-1-stephen@networkplumber.org (mailing list archive) |
---|---|
State | Accepted |
Commit | da5a2d94dc012a923133e94bed25a67f6bd74657 |
Delegated to: | David Ahern |
Headers | show |
Series | [iproute2] color: handle case where fmt is NULL | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
Hello: This patch was applied to iproute2/iproute2.git (main) by Stephen Hemminger <stephen@networkplumber.org>: On Mon, 22 Jan 2024 20:30:10 -0800 you wrote: > There are cases where NULL is passed as format string when > nothing is to be printed. This is commonly done in the print_bool > function when a flag is false. Glibc seems to handle this case nicely > but for musl it will cause a segmentation fault > > Since nothing needs to be printed, in this case; just check > for NULL and return. > > [...] Here is the summary with links: - [iproute2] color: handle case where fmt is NULL https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/?id=da5a2d94dc01 You are awesome, thank you!
diff --git a/lib/color.c b/lib/color.c index 59976847295c..cd0f9f7509b5 100644 --- a/lib/color.c +++ b/lib/color.c @@ -140,6 +140,9 @@ int color_fprintf(FILE *fp, enum color_attr attr, const char *fmt, ...) int ret = 0; va_list args; + if (fmt == NULL) + return 0; + va_start(args, fmt); if (!color_is_enabled || attr == COLOR_NONE) {
There are cases where NULL is passed as format string when nothing is to be printed. This is commonly done in the print_bool function when a flag is false. Glibc seems to handle this case nicely but for musl it will cause a segmentation fault Since nothing needs to be printed, in this case; just check for NULL and return. Reported-by: Pedro Tammela <pctammela@mojatatu.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- lib/color.c | 3 +++ 1 file changed, 3 insertions(+)