From 0ed9d18b27f8d9566fe7708315e54db15555c490 Mon Sep 17 00:00:00 2001 From: Niko Marmeladkov Date: Tue, 30 Jun 2026 14:33:41 +0300 Subject: [PATCH] Fix nil interface trap in GetByNumber Map lookup returns typed nil *Session for missing keys, which wraps into CallSession interface as non-nil typed nil. Nil check silently passes, causing nil dereference. --- internal/server/server.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/server/server.go b/internal/server/server.go index 48c7f3e..e8aa272 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -357,7 +357,11 @@ func (s *Server) Unregister(number string) { func (s *Server) GetByNumber(number string) call.CallSession { s.sessionsMu.RLock() defer s.sessionsMu.RUnlock() - return s.sessions[number] + sess := s.sessions[number] + if sess == nil { + return nil + } + return sess } func (s *Server) GetAll() []call.CallSession {