aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Hemminger <stephen@networkplumber.org>2024-01-22 20:26:08 -0800
committerStephen Hemminger <stephen@networkplumber.org>2024-01-22 20:26:08 -0800
commitda5a2d94dc012a923133e94bed25a67f6bd74657 (patch)
treecf1b75bb9c7825a695979da8f905a6383761f7fb
parent325c96e749436fc8305e7a67a6f1e54e37045450 (diff)
downloadiproute2-da5a2d94dc012a923133e94bed25a67f6bd74657.tar.gz
color: handle case where fmt is NULL
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>
-rw-r--r--lib/color.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/color.c b/lib/color.c
index 599768472..cd0f9f750 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) {