about summary refs log tree commit diff stats
path: root/miasm/jitter/vm_mngr_py.c
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2019-03-26 15:46:07 +0100
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2019-03-27 12:30:46 +0100
commit31d03710ab858a2b1023c1fc372d08076256e301 (patch)
tree290762625a2ff131a05ae9a0a49863108816cb2b /miasm/jitter/vm_mngr_py.c
parent89a31947780bb584d8d082817fc77be5c30097af (diff)
downloadfocaccia-miasm-31d03710ab858a2b1023c1fc372d08076256e301.tar.gz
focaccia-miasm-31d03710ab858a2b1023c1fc372d08076256e301.zip
Jitter: size_t for mem read/write
Diffstat (limited to 'miasm/jitter/vm_mngr_py.c')
-rw-r--r--miasm/jitter/vm_mngr_py.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/miasm/jitter/vm_mngr_py.c b/miasm/jitter/vm_mngr_py.c
index 57494655..d2e1d97f 100644
--- a/miasm/jitter/vm_mngr_py.c
+++ b/miasm/jitter/vm_mngr_py.c
@@ -162,7 +162,7 @@ PyObject* vm_set_mem(VmMngr* self, PyObject* args)
        Py_ssize_t py_length;
 
        char * buffer;
-       uint64_t size;
+       Py_ssize_t pysize;
        uint64_t addr;
        int ret;
 
@@ -174,14 +174,17 @@ PyObject* vm_set_mem(VmMngr* self, PyObject* args)
        if (!PyBytes_Check(py_buffer))
 	       RAISE(PyExc_TypeError,"arg must be bytes");
 
-       size = PyBytes_Size(py_buffer);
+       pysize = PyBytes_Size(py_buffer);
+       if (pysize < 0) {
+	       RAISE(PyExc_TypeError,"Python error");
+       }
        PyBytes_AsStringAndSize(py_buffer, &buffer, &py_length);
 
-       ret = vm_write_mem(&self->vm_mngr, addr, buffer, size);
+       ret = vm_write_mem(&self->vm_mngr, addr, buffer, pysize);
        if (ret < 0)
 	      RAISE(PyExc_TypeError, "Error in set_mem");
 
-       add_mem_write(&self->vm_mngr, addr, size);
+       add_mem_write(&self->vm_mngr, addr, (size_t)pysize);
        check_invalid_code_blocs(&self->vm_mngr);
 
        Py_INCREF(Py_None);