-
Notifications
You must be signed in to change notification settings - Fork 102
Open
Description
Within the while loop in performOnDataInArchive, a buffer is allocated with malloc and used for an NSData object:
NSData *data = [NSData dataWithBytesNoCopy:buffer length:(NSUInteger)info.uncompressedSize freeWhenDone:YES];
The intention is that the memory is freed when the NSData object is released. But this happens only later, outside of the while loop. So when processing a large RAR archive, this while loop eats up the RAM.
Suggestion: Use realloc instead of malloc, do not give the NSData object ownership of the memory, and call free(buffer) when the loop is done.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels