Fix general purpose allocator incorrectly modifying total_requested_bytes in some cases

This commit is contained in:
Nathanaël Courant 2020-12-07 23:27:37 +01:00 committed by Andrew Kelley
parent 58c8ad8ea8
commit 81890e30e2

View File

@ -528,7 +528,11 @@ pub fn GeneralPurposeAllocator(comptime config: Config) type {
second_free_stack_trace,
});
if (new_size == 0) {
// Recoverable.
// Recoverable. Restore self.total_requested_bytes if needed, as we
// don't return an error value so the errdefer above does not run.
if (config.enable_memory_limit) {
self.total_requested_bytes = prev_req_bytes;
}
return @as(usize, 0);
}
@panic("Unrecoverable double free");