From 6016a710530e7b5edefab42bf3e153b4d6cd357f Mon Sep 17 00:00:00 2001 From: Nathan Wallace Date: Sat, 15 Nov 2025 23:50:17 +0800 Subject: [PATCH] Nil pointer dereference in logReceiveError closes #4798 (#4842) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Unskip test demonstrating bug #4798: Nil pointer dereference in logReceiveError 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * Fix #4798: Add nil check to logReceiveError 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --------- Co-authored-by: Claude --- pkg/pluginmanager_service/message_server.go | 3 +++ pkg/pluginmanager_service/message_server_test.go | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/pkg/pluginmanager_service/message_server.go b/pkg/pluginmanager_service/message_server.go index 2d9080ce2..30c8272c8 100644 --- a/pkg/pluginmanager_service/message_server.go +++ b/pkg/pluginmanager_service/message_server.go @@ -71,6 +71,9 @@ func (m *PluginMessageServer) runMessageListener(stream sdkproto.WrapperPlugin_E } func (m *PluginMessageServer) logReceiveError(err error, connection string) { + if err == nil { + return + } log.Printf("[TRACE] receive error for connection '%s': %v", connection, err) switch { case sdkgrpc.IsEOFError(err): diff --git a/pkg/pluginmanager_service/message_server_test.go b/pkg/pluginmanager_service/message_server_test.go index c054d013e..bf85cc4ae 100644 --- a/pkg/pluginmanager_service/message_server_test.go +++ b/pkg/pluginmanager_service/message_server_test.go @@ -72,6 +72,19 @@ func TestPluginMessageServer_LogReceiveError(t *testing.T) { ms.logReceiveError(context.DeadlineExceeded, "test-connection") } +// TestPluginMessageServer_LogReceiveError_NilError tests that logReceiveError +// handles nil error gracefully without panicking +func TestPluginMessageServer_LogReceiveError_NilError(t *testing.T) { + // Create a message server + pm := &PluginManager{} + server := &PluginMessageServer{ + pluginManager: pm, + } + + // This should not panic - calling logReceiveError with nil error + server.logReceiveError(nil, "test-connection") +} + // Test 5: Multiple Message Servers func TestPluginManager_MultipleMessageServers(t *testing.T) {