From e85922857a1f25fbb9456408797fee03bef130a9 Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Mon, 18 Mar 2024 14:55:05 +0530 Subject: [PATCH] Use cloned grants. (#2586) To ensure no pointer (i. e. mutable object) is held in returned proto. --- pkg/rtc/participant.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pkg/rtc/participant.go b/pkg/rtc/participant.go index 7b76a3768..6617e056a 100644 --- a/pkg/rtc/participant.go +++ b/pkg/rtc/participant.go @@ -503,19 +503,20 @@ func (p *ParticipantImpl) ToProtoWithVersion() (*livekit.ParticipantInfo, utils. p.timedVersion.Update(&piv) } + grants := p.ClaimGrants() p.lock.RLock() pi := &livekit.ParticipantInfo{ Sid: string(p.params.SID), Identity: string(p.params.Identity), - Name: p.grants.Name, + Name: grants.Name, State: p.State(), JoinedAt: p.ConnectedAt().Unix(), Version: v, - Permission: p.grants.Video.ToPermission(), - Metadata: p.grants.Metadata, + Permission: grants.Video.ToPermission(), + Metadata: grants.Metadata, Region: p.params.Region, IsPublisher: p.IsPublisher(), - Kind: p.grants.GetParticipantKind(), + Kind: grants.GetParticipantKind(), } p.lock.RUnlock()