From 8bbd492b945ea2363c155818745f77bcf86563a3 Mon Sep 17 00:00:00 2001 From: DinoStray Date: Mon, 12 Oct 2020 18:39:45 +0800 Subject: [PATCH] munmap not delete the right address range --- src/libethash/internal.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libethash/internal.c b/src/libethash/internal.c index 0a830fc8..b7f85637 100644 --- a/src/libethash/internal.c +++ b/src/libethash/internal.c @@ -447,7 +447,7 @@ ethash_full_t ethash_full_new_internal( fail_free_full_data: // could check that munmap(..) == 0 but even if it did not can't really do anything here - munmap(ret->data, (size_t)full_size); + munmap(ret->data - ETHASH_DAG_MAGIC_NUM_SIZE, (size_t)full_size + ETHASH_DAG_MAGIC_NUM_SIZE); fail_close_file: fclose(ret->file); fail_free_full: @@ -469,7 +469,7 @@ ethash_full_t ethash_full_new(ethash_light_t light, ethash_callback_t callback) void ethash_full_delete(ethash_full_t full) { // could check that munmap(..) == 0 but even if it did not can't really do anything here - munmap(full->data, (size_t)full->file_size); + munmap(full->data - ETHASH_DAG_MAGIC_NUM_SIZE, (size_t)full->file_size + ETHASH_DAG_MAGIC_NUM_SIZE); if (full->file) { fclose(full->file); }