Skip to content

Commit 0e89adb

Browse files
anush-applerestyled-commits
authored andcommitted
[Darwin] Support MTRCommandWithRequiredResponse being nested in XPC (project-chip#37506)
* [Darwin] Support MTRCommandWithRequiredResponse being nested in XPC When secure decoding MTRCommandWithRequiredResponse as part of [MTRDevice deviceController:nodeID:invokeCommands:completion:], it needs to list all classes that be part of the commandFields and requiredResponse fields. When double nested XPC will only assume to decode NSDictionary of basic type. * Restyled by clang-format --------- Co-authored-by: Restyled.io <commits@restyled.io>
1 parent b2e2fbb commit 0e89adb

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/darwin/Framework/CHIP/MTRCommandWithRequiredResponse.mm

+2-2
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ - (nullable instancetype)initWithCoder:(NSCoder *)decoder
6666
return nil;
6767
}
6868

69-
_commandFields = [decoder decodeObjectOfClass:NSDictionary.class forKey:sFieldsKey];
69+
_commandFields = [decoder decodeObjectOfClasses:[NSSet setWithArray:@[ [NSDictionary class], [NSString class], [NSNumber class], [NSArray class], [NSData class] ]] forKey:sFieldsKey];
7070
if (_commandFields) {
7171
if (![_commandFields isKindOfClass:NSDictionary.class]) {
7272
MTR_LOG_ERROR("MTRCommandWithRequiredResponse decoded %@ for commandFields, not NSDictionary.", _commandFields);
@@ -79,7 +79,7 @@ - (nullable instancetype)initWithCoder:(NSCoder *)decoder
7979
}
8080
}
8181

82-
_requiredResponse = [decoder decodeObjectOfClass:NSDictionary.class forKey:sExpectedResultKey];
82+
_requiredResponse = [decoder decodeObjectOfClasses:[NSSet setWithArray:@[ [NSDictionary class], [NSString class], [NSNumber class], [NSArray class], [NSData class] ]] forKey:sExpectedResultKey];
8383
if (_requiredResponse) {
8484
if (![_requiredResponse isKindOfClass:NSDictionary.class]) {
8585
MTR_LOG_ERROR("MTRCommandWithRequiredResponse decoded %@ for requiredResponse, not NSDictionary.", _requiredResponse);

0 commit comments

Comments
 (0)