diff --git a/Libraries/Network/RCTNetworking.mm b/Libraries/Network/RCTNetworking.mm index 248dfce227c3d1..402620b0f43fca 100644 --- a/Libraries/Network/RCTNetworking.mm +++ b/Libraries/Network/RCTNetworking.mm @@ -402,8 +402,14 @@ + (NSString *)decodeTextData:(NSData *)data fromResponse:(NSURLResponse *)respon if (inputCarryData) { NSUInteger encodedResponseLength = [encodedResponse dataUsingEncoding:encoding].length; - NSData *newCarryData = [currentCarryData subdataWithRange:NSMakeRange(encodedResponseLength, currentCarryData.length - encodedResponseLength)]; - [inputCarryData setData:newCarryData]; + + // Ensure a valid subrange exists within currentCarryData + if (currentCarryData.length >= encodedResponseLength) { + NSData *newCarryData = [currentCarryData subdataWithRange:NSMakeRange(encodedResponseLength, currentCarryData.length - encodedResponseLength)]; + [inputCarryData setData:newCarryData]; + } else { + [inputCarryData setLength:0]; + } } return encodedResponse;