From 8f6b282acc44ddd459715a6f2db8aaafd6b5b11e Mon Sep 17 00:00:00 2001 From: Lucas Manning Date: Mon, 23 May 2022 14:05:00 -0700 Subject: [PATCH] Fix data race in remote_test. PiperOrigin-RevId: 450520804 --- pkg/sentry/seccheck/checkers/remote/test/server.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkg/sentry/seccheck/checkers/remote/test/server.go b/pkg/sentry/seccheck/checkers/remote/test/server.go index 7bf93d845..d25ed6cf7 100644 --- a/pkg/sentry/seccheck/checkers/remote/test/server.go +++ b/pkg/sentry/seccheck/checkers/remote/test/server.go @@ -48,6 +48,7 @@ type Server struct { // +checklocks:mu points []Message + // +checklocks:mu version uint32 } @@ -147,7 +148,10 @@ func (s *Server) handshake(client *unet.Socket) error { return fmt.Errorf("wrong version number, want: %d, got, %d", wire.CurrentVersion, hsIn.Version) } - hsOut := pb.Handshake{Version: s.version} + s.mu.Lock() + v := s.version + s.mu.Unlock() + hsOut := pb.Handshake{Version: v} out, err := proto.Marshal(&hsOut) if err != nil { return fmt.Errorf("marshalling handshake message: %w", err) @@ -248,5 +252,7 @@ func (s *Server) WaitForCount(count int) error { // SetVersion sets the version to be used in handshake. func (s *Server) SetVersion(newVersion uint32) { + s.mu.Lock() + defer s.mu.Unlock() s.version = newVersion }