URI:
       avoid snprintf using NULL pointer with %s - ii - irc it, simple FIFO based irc client
  HTML git clone git://git.suckless.org/ii
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit ce3933a43568effd1d463fab5f1e69a2ed5961e4
   DIR parent b6b5be5ebba548dfc0c61cd54704980d2fc50916
  HTML Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Mon,  6 Apr 2026 11:03:57 +0200
       
       avoid snprintf using NULL pointer with %s
       
       - PONG should have an argument, ignore if it does not have one.
       - check TOK_TEXT for NULL.
       
       Based on a patch from Aaron Burrow, thanks!
       
       Diffstat:
         M ii.c                                |       9 ++++++---
       
       1 file changed, 6 insertions(+), 3 deletions(-)
       ---
   DIR diff --git a/ii.c b/ii.c
       @@ -616,10 +616,12 @@ proc_server_cmd(int fd, char *buf)
                tokenize(&argv[TOK_CMD], TOK_LAST - TOK_CMD, cmd, ' ');
        
                if (!argv[TOK_CMD] || !strcmp("PONG", argv[TOK_CMD])) {
       -                snprintf(msg, sizeof(msg), "-!- %s %s", argv[TOK_CMD], argv[TOK_TEXT]);
       +                snprintf(msg, sizeof(msg), "-!- %s %s",
       +                        argv[TOK_CMD] ? argv[TOK_CMD] : "",
       +                        argv[TOK_TEXT] ? argv[TOK_TEXT] : "");
                        channel_print(channelmaster, msg);
                        return;
       -        } else if (!strcmp("PING", argv[TOK_CMD])) {
       +        } else if (!strcmp("PING", argv[TOK_CMD]) && argv[TOK_TEXT]) {
                        channel_print(channelmaster, "-!- sending PONG to PING request");
                        snprintf(msg, sizeof(msg), "PONG %s\r\n", argv[TOK_TEXT]);
                        channel_print(channelmaster, msg);
       @@ -679,7 +681,8 @@ proc_server_cmd(int fd, char *buf)
                        snprintf(msg, sizeof(msg), "<%s> %s", argv[TOK_NICKSRV],
                                        argv[TOK_TEXT] ? argv[TOK_TEXT] : "");
                } else {
       -                snprintf(msg, sizeof(msg), "-!- unknown cmd %s", argv[TOK_TEXT]);
       +                snprintf(msg, sizeof(msg), "-!- unknown cmd %s",
       +                        argv[TOK_TEXT] ? argv[TOK_TEXT] : "");
                        channel_print(channelmaster, msg);
                        return; /* can't read this message */
                }