@@ -66,11 +66,12 @@ } - (void)getObjects: (id*)buffer inRange: (of_range_t)range_ { - if (range_.location + range_.length > range.length) + if (range_.length > SIZE_MAX - range_.location || + range_.location + range_.length > range.length) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; range_.location += range.location; return [array getObjects: buffer @@ -107,13 +108,14 @@ return index; } - (OFArray*)objectsInRange: (of_range_t)range_ { - if (range_.location + range_.length > range.length) + if (range_.length > SIZE_MAX - range_.location || + range_.location + range_.length > range.length) @throw [OFOutOfRangeException exceptionWithClass: [self class]]; range_.location += range.location; return [array objectsInRange: range_]; } @end