Skip to content

Commit 91a5a97

Browse files
lqspurnesh42H
authored andcommitted
server: fix buffer release timing in processUnaryRPC (grpc#7998)
1 parent 87811a4 commit 91a5a97

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

server.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1360,8 +1360,16 @@ func (s *Server) processUnaryRPC(ctx context.Context, stream *transport.ServerSt
13601360
}
13611361
return err
13621362
}
1363-
defer d.Free()
1363+
freed := false
1364+
dataFree := func() {
1365+
if !freed {
1366+
d.Free()
1367+
freed = true
1368+
}
1369+
}
1370+
defer dataFree()
13641371
df := func(v any) error {
1372+
defer dataFree()
13651373
if err := s.getCodec(stream.ContentSubtype()).Unmarshal(d, v); err != nil {
13661374
return status.Errorf(codes.Internal, "grpc: error unmarshalling request: %v", err)
13671375
}

0 commit comments

Comments
 (0)