Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PrebidSDK Expects
Passthrough
as an Array on auction response. But it's possible for it to come in as a dictionary from Prebid Server.Consider this as an example
Here
jsonDictionary[@"passthrough"];
is coming in as a dictionary.When this line executes
NSArray<PBMJsonDictionary*> * const passthroughDics = jsonDictionary[@"passthrough"];
it sets passthroughDics as a
NSDictionary
Due to which
nextDic
infor(PBMJsonDictionary *nextDic in passthroughDics) {
is set asNSString
The next line in PrebidSDK is
PBMORTBExtPrebidPassthrough * const nextPassthrough = [[PBMORTBExtPrebidPassthrough alloc] initWithJsonDictionary:nextDic];
which calls init for
PBMORTBExtPrebidPassthrough
where it executes this line_type = jsonDictionary[@"type"];
This line tries to subscript
type
inside aNSString
which leads to this crash-[__NSCFString objectForKeyedSubscript:]: unrecognized selector sent to instance 0x300dad3b0
Approach --> We make sure to check for the expected class before accessing or initializing the objects.