diff mbox series

[iproute2] color: handle case where fmt is NULL

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

Checks

Context Check Description
netdev/tree_selection success Not a local patch

Commit Message

Stephen Hemminger Jan. 23, 2024, 4:30 a.m. UTC
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(+)

Comments

patchwork-bot+netdevbpf@kernel.org Jan. 24, 2024, 11:20 p.m. UTC | #1
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 mbox series

Patch

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) {