Skip to content

Commit 46b4649

Browse files
Make sure to ignore setDeviceControllerDelegate calls on non-running controllers. (#22778)
Otherwise we can end up with null-derefs trying to touch members that no longer exist. Fixes #22776
1 parent 1e3c5fe commit 46b4649

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

src/darwin/Framework/CHIP/MTRDeviceController.mm

+4
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,11 @@ - (void)removeDevice:(MTRDevice *)device
535535

536536
- (void)setDeviceControllerDelegate:(id<MTRDeviceControllerDelegate>)delegate queue:(dispatch_queue_t)queue
537537
{
538+
VerifyOrReturn([self checkIsRunning]);
539+
538540
dispatch_async(_chipWorkQueue, ^{
541+
VerifyOrReturn([self checkIsRunning]);
542+
539543
self->_deviceControllerDelegateBridge->setDelegate(self, delegate, queue);
540544
});
541545
}

0 commit comments

Comments
 (0)