From 8cf4567f3cca780fbee5c9f1601997c4d3ac34a4 Mon Sep 17 00:00:00 2001 From: Daman Arora Date: Sun, 21 Apr 2024 16:47:21 +0530 Subject: [PATCH] agnhost/netexec: handle nil pointer dereference for SCTP server If the client immediately closes connection after SCTP handshake, the remote-addr fetched by SCTP server can be nil, causing the server to crash. Signed-off-by: Daman Arora --- test/images/agnhost/netexec/netexec.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/images/agnhost/netexec/netexec.go b/test/images/agnhost/netexec/netexec.go index a63054f7771..f1e2e62d536 100644 --- a/test/images/agnhost/netexec/netexec.go +++ b/test/images/agnhost/netexec/netexec.go @@ -693,7 +693,11 @@ func startSCTPServer(sctpPort int) { for { conn, err := listener.AcceptSCTP() assertNoError(err, fmt.Sprintf("failed accepting SCTP connections")) - clientAddress := conn.RemoteAddr().String() + remoteAddr, err := conn.SCTPRemoteAddr(0) + if err != nil { + assertNoError(err, "failed to get SCTP client remote address") + } + clientAddress := remoteAddr.String() n, err := conn.Read(buf) assertNoError(err, fmt.Sprintf("failed to read from SCTP client %s", clientAddress)) receivedText := strings.ToLower(strings.TrimSpace(string(buf[0:n])))