diff options
| author | serpilliere <serpilliere@users.noreply.github.com> | 2020-08-27 07:49:33 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-27 07:49:33 +0200 |
| commit | 5d8beb271d9890241a6d61dd476fab26ca37ebbf (patch) | |
| tree | 67f6e0848a48e51e5c4643fcd361348453361f62 | |
| parent | ef7706905af9b6ef152d5b624968de44d5e80483 (diff) | |
| parent | f41f7bc91b7afccf2ff5744bbb86f9aa130454af (diff) | |
| download | miasm-5d8beb271d9890241a6d61dd476fab26ca37ebbf.tar.gz miasm-5d8beb271d9890241a6d61dd476fab26ca37ebbf.zip | |
Merge pull request #1272 from IridiumXOR/master
Fix overflow if virtual memory page size >= 4GiB
| -rw-r--r-- | miasm/jitter/vm_mngr.c | 4 | ||||
| -rw-r--r-- | miasm/jitter/vm_mngr.h | 2 | ||||
| -rw-r--r-- | miasm/jitter/vm_mngr_py.c | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/miasm/jitter/vm_mngr.c b/miasm/jitter/vm_mngr.c index d0e49213..5e20670a 100644 --- a/miasm/jitter/vm_mngr.c +++ b/miasm/jitter/vm_mngr.c @@ -661,7 +661,7 @@ int is_mapped(vm_mngr_t* vm_mngr, uint64_t addr, size_t size) return 1; } -struct memory_page_node * create_memory_page_node(uint64_t ad, unsigned int size, unsigned int access, const char *name) +struct memory_page_node * create_memory_page_node(uint64_t ad, size_t size, unsigned int access, const char *name) { struct memory_page_node * mpn; void* ad_hp; @@ -674,7 +674,7 @@ struct memory_page_node * create_memory_page_node(uint64_t ad, unsigned int size ad_hp = malloc(size); if (!ad_hp){ free(mpn); - fprintf(stderr, "Error: cannot alloc %d\n", size); + fprintf(stderr, "Error: cannot alloc %zu\n", size); return NULL; } mpn->name = malloc(strlen(name) + 1); diff --git a/miasm/jitter/vm_mngr.h b/miasm/jitter/vm_mngr.h index 946d3b48..2bbf2c57 100644 --- a/miasm/jitter/vm_mngr.h +++ b/miasm/jitter/vm_mngr.h @@ -230,7 +230,7 @@ void hexdump(char* m, unsigned int l); struct code_bloc_node * create_code_bloc_node(uint64_t ad_start, uint64_t ad_stop); void add_code_bloc(vm_mngr_t* vm_mngr, struct code_bloc_node* cbp); -struct memory_page_node * create_memory_page_node(uint64_t ad, unsigned int size, unsigned int access, const char *name);//memory_page* mp); +struct memory_page_node * create_memory_page_node(uint64_t ad, size_t size, unsigned int access, const char *name);//memory_page* mp); void init_memory_page_pool(vm_mngr_t* vm_mngr); void init_code_bloc_pool(vm_mngr_t* vm_mngr); void reset_memory_page_pool(vm_mngr_t* vm_mngr); diff --git a/miasm/jitter/vm_mngr_py.c b/miasm/jitter/vm_mngr_py.c index 8bee0586..dd1bd9b1 100644 --- a/miasm/jitter/vm_mngr_py.c +++ b/miasm/jitter/vm_mngr_py.c @@ -106,7 +106,7 @@ PyObject* vm_add_memory_page(VmMngr* self, PyObject* args) } else { PyGetStr(name_ptr, name); } - mpn = create_memory_page_node(page_addr, (unsigned int)buf_size, (unsigned int)page_access, name_ptr); + mpn = create_memory_page_node(page_addr, (size_t)buf_size, (unsigned int)page_access, name_ptr); if (mpn == NULL) RAISE(PyExc_TypeError,"cannot create page"); if (is_mpn_in_tab(&self->vm_mngr, mpn)) { |