diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2019-03-26 15:46:07 +0100 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2019-03-27 12:30:46 +0100 |
| commit | 31d03710ab858a2b1023c1fc372d08076256e301 (patch) | |
| tree | 290762625a2ff131a05ae9a0a49863108816cb2b /miasm/jitter/vm_mngr.c | |
| parent | 89a31947780bb584d8d082817fc77be5c30097af (diff) | |
| download | focaccia-miasm-31d03710ab858a2b1023c1fc372d08076256e301.tar.gz focaccia-miasm-31d03710ab858a2b1023c1fc372d08076256e301.zip | |
Jitter: size_t for mem read/write
Diffstat (limited to 'miasm/jitter/vm_mngr.c')
| -rw-r--r-- | miasm/jitter/vm_mngr.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/miasm/jitter/vm_mngr.c b/miasm/jitter/vm_mngr.c index a767b366..d27dd135 100644 --- a/miasm/jitter/vm_mngr.c +++ b/miasm/jitter/vm_mngr.c @@ -513,30 +513,23 @@ uint64_t vm_MEM_LOOKUP_64(vm_mngr_t* vm_mngr, uint64_t addr) } -int vm_read_mem(vm_mngr_t* vm_mngr, uint64_t addr, char** buffer_ptr, uint64_t size) +int vm_read_mem(vm_mngr_t* vm_mngr, uint64_t addr, char** buffer_ptr, size_t size) { char* buffer; size_t len; - size_t size_st; uint64_t addr_diff; size_t addr_diff_st; struct memory_page_node * mpn; - if (size > SIZE_MAX) { - fprintf(stderr, "Size too big\n"); - exit(EXIT_FAILURE); - } - - buffer = malloc((size_t)size); + buffer = malloc(size); *buffer_ptr = buffer; if (!buffer){ fprintf(stderr, "Error: cannot alloc read\n"); exit(EXIT_FAILURE); } - size_st = (size_t)size; /* read is multiple page wide */ - while (size_st){ + while (size){ mpn = get_memory_page_from_address(vm_mngr, addr, 1); if (!mpn){ free(*buffer_ptr); @@ -550,17 +543,17 @@ int vm_read_mem(vm_mngr_t* vm_mngr, uint64_t addr, char** buffer_ptr, uint64_t s exit(EXIT_FAILURE); } addr_diff_st = (size_t) addr_diff; - len = MIN(size_st, mpn->size - addr_diff_st); + len = MIN(size, mpn->size - addr_diff_st); memcpy(buffer, (char*)mpn->ad_hp + (addr_diff_st), len); buffer += len; addr += len; - size_st -= len; + size -= len; } return 0; } -int vm_write_mem(vm_mngr_t* vm_mngr, uint64_t addr, char *buffer, uint64_t size) +int vm_write_mem(vm_mngr_t* vm_mngr, uint64_t addr, char *buffer, size_t size) { size_t len; size_t size_st; |