@@ -329,10 +329,14 @@ - (OFArray*)objectsInRange: (of_range_t)range { OFArray *ret; id *buffer; + if (range.length > SIZE_MAX - range.location || + range.location + range.length < [self count]) + @throw [OFOutOfRangeException exceptionWithClass: [self class]]; + if (![self isKindOfClass: [OFMutableArray class]]) return [OFArray_subarray arrayWithArray: self range: range]; buffer = [self allocMemoryWithSize: sizeof(*buffer)