From 5eaa66a2ed33af2d7182e9b57cfbf3b94d66bb0b Mon Sep 17 00:00:00 2001 From: Ayush Ranjan Date: Fri, 12 Jan 2024 22:19:55 -0800 Subject: [PATCH] Fix ipv4.endpoint.AddAndAcquirePermanentAddress() to write lock endpoint mutex. Fixes #7951 PiperOrigin-RevId: 598068487 --- pkg/tcpip/network/ipv4/ipv4.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/tcpip/network/ipv4/ipv4.go b/pkg/tcpip/network/ipv4/ipv4.go index 6dfb07fcb..4c59fe158 100644 --- a/pkg/tcpip/network/ipv4/ipv4.go +++ b/pkg/tcpip/network/ipv4/ipv4.go @@ -1362,8 +1362,8 @@ func (e *endpoint) Close() { // AddAndAcquirePermanentAddress implements stack.AddressableEndpoint. func (e *endpoint) AddAndAcquirePermanentAddress(addr tcpip.AddressWithPrefix, properties stack.AddressProperties) (stack.AddressEndpoint, tcpip.Error) { - e.mu.RLock() - defer e.mu.RUnlock() + e.mu.Lock() + defer e.mu.Unlock() ep, err := e.addressableEndpointState.AddAndAcquireAddress(addr, properties, stack.Permanent) if err == nil { @@ -1374,7 +1374,7 @@ func (e *endpoint) AddAndAcquirePermanentAddress(addr tcpip.AddressWithPrefix, p // sendQueuedReports sends queued igmp reports. // -// +checklocksread:e.mu +// +checklocks:e.mu // +checklocksalias:e.igmp.ep.mu=e.mu func (e *endpoint) sendQueuedReports() { e.igmp.sendQueuedReports()