Skip to content

Commit 29d3f9f

Browse files
authored
Avoid possible UAF in rendering complete notification (#894)
1 parent 20e123c commit 29d3f9f

1 file changed

Lines changed: 9 additions & 9 deletions

File tree

Sources/CSFBAudioEngine/Player/AudioPlayer.mm

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -664,8 +664,8 @@ Flags clearFlags(Flags flags, std::memory_order order = std::memory_order_acq_re
664664
assert(!(didStartEngine && wasPlaying));
665665
}
666666

667-
if ((didStartEngine || !wasPlaying) && [player_.delegate respondsToSelector:@selector(audioPlayer:
668-
playbackStateChanged:)]) {
667+
if ((didStartEngine || !wasPlaying) &&
668+
[player_.delegate respondsToSelector:@selector(audioPlayer:playbackStateChanged:)]) {
669669
[player_.delegate audioPlayer:player_ playbackStateChanged:SFBAudioPlayerPlaybackStatePlaying];
670670
}
671671

@@ -1783,8 +1783,8 @@ Flags clearFlags(Flags flags, std::memory_order order = std::memory_order_acq_re
17831783

17841784
if (error == nil && [player_.delegate respondsToSelector:@selector(audioPlayer:decoderCanceled:framesRendered:)]) {
17851785
[player_.delegate audioPlayer:player_ decoderCanceled:decoder framesRendered:framesRendered];
1786-
} else if (error != nil && [player_.delegate respondsToSelector:@selector(audioPlayer:
1787-
decodingAborted:error:framesRendered:)]) {
1786+
} else if (error != nil &&
1787+
[player_.delegate respondsToSelector:@selector(audioPlayer:decodingAborted:error:framesRendered:)]) {
17881788
[player_.delegate audioPlayer:player_ decodingAborted:decoder error:error framesRendered:framesRendered];
17891789
}
17901790

@@ -2104,9 +2104,9 @@ Flags clearFlags(Flags flags, std::memory_order order = std::memory_order_acq_re
21042104
[player.delegate audioPlayerEndOfAudio:player];
21052105
} else {
21062106
const auto didStopEngine = stopEngineIfRunning();
2107-
if (didStopEngine && [player_.delegate respondsToSelector:@selector(audioPlayer:
2108-
playbackStateChanged:)]) {
2109-
[player_.delegate audioPlayer:player_ playbackStateChanged:SFBAudioPlayerPlaybackStateStopped];
2107+
if (didStopEngine &&
2108+
[player.delegate respondsToSelector:@selector(audioPlayer:playbackStateChanged:)]) {
2109+
[player.delegate audioPlayer:player playbackStateChanged:SFBAudioPlayerPlaybackStateStopped];
21102110
}
21112111
}
21122112
}
@@ -2244,8 +2244,8 @@ Flags clearFlags(Flags flags, std::memory_order order = std::memory_order_acq_re
22442244
preInterruptState_ = bits::to_underlying(prevFlags & (Flags::engineIsRunning | Flags::isPlaying));
22452245
}
22462246

2247-
if (preInterruptState_ != 0 && [player_.delegate respondsToSelector:@selector(audioPlayer:
2248-
playbackStateChanged:)]) {
2247+
if (preInterruptState_ != 0 &&
2248+
[player_.delegate respondsToSelector:@selector(audioPlayer:playbackStateChanged:)]) {
22492249
[player_.delegate audioPlayer:player_ playbackStateChanged:SFBAudioPlayerPlaybackStateStopped];
22502250
}
22512251

0 commit comments

Comments
 (0)