Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 07 Jan 2026 14:35:21 +0000
From:      Alan Somers <asomers@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 3b6615ec0332 - main - netstat: fix a segfault with --libxo
Message-ID:  <695e6f29.ade7.4cf71b8b@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by asomers:

URL: https://cgit.FreeBSD.org/src/commit/?id=3b6615ec0332f901fcc9e9307f78717424f09c1e

commit 3b6615ec0332f901fcc9e9307f78717424f09c1e
Author:     Alan Somers <asomers@FreeBSD.org>
AuthorDate: 2026-01-06 22:19:57 +0000
Commit:     Alan Somers <asomers@FreeBSD.org>
CommitDate: 2026-01-07 14:35:13 +0000

    netstat: fix a segfault with --libxo
    
    Fix a segfault when printing the "protocol" field.  The field-format and
    encoding-format were expecting different numbers of arguments.
    
    Also, fix the width of the tcp-state field in encoded output.
    
    PR:             292228
    Fixes:          c2b08c13c20 netstat: add support for UDP-Lite endpoints
    MFC after:      1 week
    Sponsored by:   ConnectWise
    Reviewed by:    tuexen, js, des
    Differential Revision: https://reviews.freebsd.org/D54567
---
 usr.bin/netstat/inet.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/usr.bin/netstat/inet.c b/usr.bin/netstat/inet.c
index dee245b63a87..6e4811480237 100644
--- a/usr.bin/netstat/inet.c
+++ b/usr.bin/netstat/inet.c
@@ -394,11 +394,10 @@ protopr(u_long off, const char *name, int af1, int proto)
 		if (istcp && (tp->t_flags & TF_TOE) != 0)
 			xo_emit("{:protocol/%-3.3s%-6.6s/%s%s} ", "toe", vchar);
 		else {
-			int len;
+			int l = max (2, 9 - strlen(name));
 
-			len = max (2, 9 - strlen(name));
-			xo_emit("{:protocol/%.7s%-*.*s/%s%s} ", name, len, len,
-			    vchar);
+			xo_emit("{d:protocol/%.7s%-*.*s} ", name, l, l, vchar);
+			xo_emit("{e:protocol/%s%s}", name, vchar);
 		}
 		if (Lflag) {
 			char buf1[33];
@@ -523,9 +522,9 @@ protopr(u_long off, const char *name, int af1, int proto)
 		}
 		if (istcp && !Lflag && !xflag && !Tflag && !Rflag) {
 			if (tp->t_state < 0 || tp->t_state >= TCP_NSTATES)
-				xo_emit("{:tcp-state/%-11d}", tp->t_state);
+				xo_emit("{:tcp-state/%-11d/%d}", tp->t_state);
 			else {
-				xo_emit("{:tcp-state/%-11s}",
+				xo_emit("{:tcp-state/%-11s/%s}",
 				    tcpstates[tp->t_state]);
 #if defined(TF_NEEDSYN) && defined(TF_NEEDFIN)
 				/* Show T/TCP `hidden state' */


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?695e6f29.ade7.4cf71b8b>