mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-07-29 14:40:42 +00:00
Make sure the SDK doesn't crash comparing data when the server returns invalid data
This commit is contained in:
parent
79442a5a0a
commit
feeb8ef4b1
@ -57,7 +57,6 @@
|
|||||||
|
|
||||||
#pragma mark - NSObject
|
#pragma mark - NSObject
|
||||||
|
|
||||||
|
|
||||||
- (BOOL)isEqual:(id)other {
|
- (BOOL)isEqual:(id)other {
|
||||||
if (other == self)
|
if (other == self)
|
||||||
return YES;
|
return YES;
|
||||||
@ -66,24 +65,56 @@
|
|||||||
return [self isEqualToAppVersionMetaInfo:other];
|
return [self isEqualToAppVersionMetaInfo:other];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (BOOL)isEqualComparingString:(NSString *)stringA withString:(NSString *)stringB {
|
||||||
|
if ([stringA isKindOfClass:[NSString class]] && [stringB isKindOfClass:[NSString class]]) {
|
||||||
|
return [stringA isEqualToString:stringB];
|
||||||
|
}
|
||||||
|
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)isEqualComparingNumber:(NSNumber *)numberA withNumber:(NSNumber *)numberB {
|
||||||
|
if ([numberA isKindOfClass:[NSNumber class]] && [numberB isKindOfClass:[NSNumber class]]) {
|
||||||
|
return [numberA isEqualToNumber:numberB];
|
||||||
|
}
|
||||||
|
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)isEqualComparingDate:(NSDate *)dateA withDate:(NSDate *)dateB {
|
||||||
|
if ([dateA isKindOfClass:[NSDate class]] && [dateB isKindOfClass:[NSDate class]]) {
|
||||||
|
return [dateA isEqualToDate:dateB];
|
||||||
|
}
|
||||||
|
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)isEqualComparingDictionary:(NSDictionary *)dictA withDate:(NSDictionary *)dictB {
|
||||||
|
if ([dictA isKindOfClass:[NSDictionary class]] && [dictB isKindOfClass:[NSDictionary class]]) {
|
||||||
|
return [dictA isEqualToDictionary:dictB];
|
||||||
|
}
|
||||||
|
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
- (BOOL)isEqualToAppVersionMetaInfo:(BITAppVersionMetaInfo *)anAppVersionMetaInfo {
|
- (BOOL)isEqualToAppVersionMetaInfo:(BITAppVersionMetaInfo *)anAppVersionMetaInfo {
|
||||||
if (self == anAppVersionMetaInfo)
|
if (self == anAppVersionMetaInfo)
|
||||||
return YES;
|
return YES;
|
||||||
if (self.name != anAppVersionMetaInfo.name && ![self.name isEqualToString:anAppVersionMetaInfo.name])
|
if (self.name != anAppVersionMetaInfo.name && ![self isEqualComparingString:self.name withString:anAppVersionMetaInfo.name])
|
||||||
return NO;
|
return NO;
|
||||||
if (self.version != anAppVersionMetaInfo.version && ![self.version isEqualToString:anAppVersionMetaInfo.version])
|
if (self.version != anAppVersionMetaInfo.version && ![self isEqualComparingString:self.version withString:anAppVersionMetaInfo.version])
|
||||||
return NO;
|
return NO;
|
||||||
if (self.shortVersion != anAppVersionMetaInfo.shortVersion && ![self.shortVersion isEqualToString:anAppVersionMetaInfo.shortVersion])
|
if (self.shortVersion != anAppVersionMetaInfo.shortVersion && ![self isEqualComparingString:self.shortVersion withString:anAppVersionMetaInfo.shortVersion])
|
||||||
return NO;
|
return NO;
|
||||||
if (self.notes != anAppVersionMetaInfo.notes && ![self.notes isEqualToString:anAppVersionMetaInfo.notes])
|
if (self.notes != anAppVersionMetaInfo.notes && ![self isEqualComparingString:self.notes withString:anAppVersionMetaInfo.notes])
|
||||||
return NO;
|
return NO;
|
||||||
if (self.date != anAppVersionMetaInfo.date && ![self.date isEqualToDate:anAppVersionMetaInfo.date])
|
if (self.date != anAppVersionMetaInfo.date && ![self isEqualComparingDate:self.date withDate:anAppVersionMetaInfo.date])
|
||||||
return NO;
|
return NO;
|
||||||
if (self.size != anAppVersionMetaInfo.size && ![self.size isEqualToNumber:anAppVersionMetaInfo.size])
|
if (self.size != anAppVersionMetaInfo.size && ![self isEqualComparingNumber:self.size withNumber:anAppVersionMetaInfo.size])
|
||||||
return NO;
|
return NO;
|
||||||
if (self.mandatory != anAppVersionMetaInfo.mandatory && ![self.mandatory isEqualToNumber:anAppVersionMetaInfo.mandatory])
|
if (self.mandatory != anAppVersionMetaInfo.mandatory && ![self isEqualComparingNumber:self.mandatory withNumber:anAppVersionMetaInfo.mandatory])
|
||||||
return NO;
|
return NO;
|
||||||
if (![self.uuids isEqualToDictionary:anAppVersionMetaInfo.uuids])
|
if (![self isEqualComparingDictionary:self.uuids withDate:anAppVersionMetaInfo.uuids])
|
||||||
return NO;
|
return NO;
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user