Merge pull request #618 from lxcid/master

[Issue #591] Attempts to fix crash caused by incorrect calculation of range when reading data into buffer.
This commit is contained in:
Mattt Thompson 2012-11-01 08:36:03 -07:00
commit aab0ceec08

View file

@ -1143,12 +1143,12 @@ typedef enum {
intoBuffer:(uint8_t *)buffer
maxLength:(NSUInteger)length
{
NSRange range = NSMakeRange((NSUInteger)_phaseReadOffset, MIN([data length], length));
NSRange range = NSMakeRange((NSUInteger)_phaseReadOffset, MIN([data length] - ((NSUInteger)_phaseReadOffset), length));
[data getBytes:buffer range:range];
_phaseReadOffset += range.length;
if (range.length >= [data length]) {
if (((NSUInteger)_phaseReadOffset) >= [data length]) {
[self transitionToNextPhase];
}