diff options
| author | serpilliere <serpilliere@users.noreply.github.com> | 2017-07-24 11:18:16 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-07-24 11:18:16 +0200 |
| commit | 051c1d2d7f1c58effd716e35f7b6897dcbe45488 (patch) | |
| tree | 9eac332a43c4804c3ebecbe088a7789c548445b4 | |
| parent | c131b203e3389a652ea14231a4528b6cddb07067 (diff) | |
| parent | 342a7fc31f2349e6c100cea610bceedbf965ad07 (diff) | |
| download | miasm-051c1d2d7f1c58effd716e35f7b6897dcbe45488.tar.gz miasm-051c1d2d7f1c58effd716e35f7b6897dcbe45488.zip | |
Merge pull request #582 from WilliamBruneau/realloc_check_return
Add null pointer check after realloc
| -rw-r--r-- | miasm2/jitter/Jittcc.c | 6 | ||||
| -rw-r--r-- | miasm2/jitter/vm_mngr.c | 17 |
2 files changed, 15 insertions, 8 deletions
diff --git a/miasm2/jitter/Jittcc.c b/miasm2/jitter/Jittcc.c index 2a85375d..955491ad 100644 --- a/miasm2/jitter/Jittcc.c +++ b/miasm2/jitter/Jittcc.c @@ -88,8 +88,7 @@ PyObject* tcc_set_emul_lib_path(PyObject* self, PyObject* args) include_array_count ++; include_array = realloc(include_array, include_array_count * sizeof(char*)); - if (include_array == NULL) - { + if (include_array == NULL) { fprintf(stderr, "cannot realloc char* include_array\n"); exit(EXIT_FAILURE); } @@ -107,8 +106,7 @@ PyObject* tcc_set_emul_lib_path(PyObject* self, PyObject* args) lib_array_count ++; lib_array = realloc(lib_array, lib_array_count * sizeof(char*)); - if (lib_array == NULL) - { + if (lib_array == NULL) { fprintf(stderr, "cannot realloc char* lib_array\n"); exit(EXIT_FAILURE); } diff --git a/miasm2/jitter/vm_mngr.c b/miasm2/jitter/vm_mngr.c index 1114185b..0df1abaf 100644 --- a/miasm2/jitter/vm_mngr.c +++ b/miasm2/jitter/vm_mngr.c @@ -103,6 +103,10 @@ void memory_access_list_add(struct memory_access_list * access, uint64_t start, else access->allocated *= 2; access->array = realloc(access->array, access->allocated * sizeof(struct memory_access)); + if (access->array == NULL) { + fprintf(stderr, "cannot realloc struct memory_access access->array\n"); + exit(EXIT_FAILURE); + } } access->array[access->num].start = start; access->array[access->num].stop = stop; @@ -1602,6 +1606,11 @@ void add_memory_page(vm_mngr_t* vm_mngr, struct memory_page_node* mpn_a) vm_mngr->memory_pages_array = realloc(vm_mngr->memory_pages_array, sizeof(struct memory_page_node) * (vm_mngr->memory_pages_number+1)); + if (vm_mngr->memory_pages_array == NULL) { + fprintf(stderr, "cannot realloc struct memory_page_node vm_mngr->memory_pages_array\n"); + exit(EXIT_FAILURE); + } + memmove(&vm_mngr->memory_pages_array[i+1], &vm_mngr->memory_pages_array[i], @@ -1629,8 +1638,8 @@ char* dump(vm_mngr_t* vm_mngr) buf_final = malloc(total_len); if (buf_final == NULL) { - fprintf(stderr, "Error: cannot alloc\n"); - exit(0); + fprintf(stderr, "Error: cannot alloc char* buf_final\n"); + exit(EXIT_FAILURE); } strcpy(buf_final, intro); for (i=0; i< vm_mngr->memory_pages_number; i++) { @@ -1653,8 +1662,8 @@ char* dump(vm_mngr_t* vm_mngr) total_len += length + 1 + 1; buf_final = realloc(buf_final, total_len); if (buf_final == NULL) { - fprintf(stderr, "Error: cannot alloc\n"); - exit(0); + fprintf(stderr, "cannot realloc char* buf_final\n"); + exit(EXIT_FAILURE); } strcat(buf_final, buf); } |