diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2019-01-31 18:43:30 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2019-01-31 18:46:55 (GMT) |
commit | 5efaafe278314051661c99c1e33a00d0883025a6 (patch) | |
tree | f4ee10bdb5605a82b80955fcfbf56a623ffc414d | |
parent | 8f557031ec362c4b2e85724f6bc392086cefadea (diff) |
Fixed mistakes relative to PyUnicode_Check() return value.
-rw-r--r-- | plugins/pychrysalide/analysis/db/certs.c | 2 | ||||
-rw-r--r-- | plugins/pychrysalide/analysis/routine.c | 6 | ||||
-rw-r--r-- | plugins/pychrysalide/analysis/variable.c | 6 | ||||
-rw-r--r-- | plugins/pychrysalide/helpers.c | 2 | ||||
-rw-r--r-- | tests/analysis/routine.py | 21 |
5 files changed, 29 insertions, 8 deletions
diff --git a/plugins/pychrysalide/analysis/db/certs.c b/plugins/pychrysalide/analysis/db/certs.c index 61b5f58..5fd2034 100644 --- a/plugins/pychrysalide/analysis/db/certs.c +++ b/plugins/pychrysalide/analysis/db/certs.c @@ -78,7 +78,7 @@ static bool py_certs_fill_x509_entries(PyObject *dict, x509_entries *out) { \ result = PyUnicode_Check(value); \ if (result) \ - out->dest = strdup((char *)PyUnicode_DATA(value)); \ + out->dest = strdup(PyUnicode_DATA(value)); \ else \ PyErr_Format(PyExc_TypeError, _("The %s property must be a string."), name); \ } \ diff --git a/plugins/pychrysalide/analysis/routine.c b/plugins/pychrysalide/analysis/routine.c index 1f245ae..d8b0eb7 100644 --- a/plugins/pychrysalide/analysis/routine.c +++ b/plugins/pychrysalide/analysis/routine.c @@ -301,10 +301,10 @@ static int py_binary_routine_set_name(PyObject *self, PyObject *value, void *clo routine = G_BIN_ROUTINE(pygobject_get(self)); - if (!PyUnicode_Check(value)) - g_binary_routine_set_name(routine, strdup(PyUnicode_DATA(value))); - else + if (value == Py_None) g_binary_routine_set_name(routine, NULL); + else + g_binary_routine_set_name(routine, strdup(PyUnicode_DATA(value))); return 0; diff --git a/plugins/pychrysalide/analysis/variable.c b/plugins/pychrysalide/analysis/variable.c index 030b26f..8af7e1d 100644 --- a/plugins/pychrysalide/analysis/variable.c +++ b/plugins/pychrysalide/analysis/variable.c @@ -178,10 +178,10 @@ static int py_binary_variable_set_name(PyObject *self, PyObject *value, void *cl variable = G_BIN_VARIABLE(pygobject_get(self)); - if (!PyUnicode_Check(value)) - g_binary_variable_set_name(variable, PyUnicode_DATA(value)); - else + if (value == Py_None) g_binary_variable_set_name(variable, NULL); + else + g_binary_variable_set_name(variable, PyUnicode_DATA(value)); return 0; diff --git a/plugins/pychrysalide/helpers.c b/plugins/pychrysalide/helpers.c index a0aa5e7..f744475 100644 --- a/plugins/pychrysalide/helpers.c +++ b/plugins/pychrysalide/helpers.c @@ -239,7 +239,7 @@ PyObject *run_python_method(PyObject *module, const char *method, PyObject *args PyErr_Fetch(&type, &value, &traceback); if (type != NULL && type == PyExc_NotImplementedError \ - && value != NULL && PyUnicode_Check(value) == 1) + && value != NULL && PyUnicode_Check(value)) { refmsg = PyUnicode_FromString(NOT_IMPLEMENTED_MSG); diff --git a/tests/analysis/routine.py b/tests/analysis/routine.py new file mode 100644 index 0000000..da54ee9 --- /dev/null +++ b/tests/analysis/routine.py @@ -0,0 +1,21 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + + +from chrysacase import ChrysalideTestCase +from pychrysalide.analysis import BinRoutine + + +class TestBinaryRoutines(ChrysalideTestCase): + """TestCase for binary routine.""" + + def testUnicodeName(self): + """Ensure Unicode checks are well performed.""" + + name = 'ABC' + + r = BinRoutine() + + r.name = name + + self.assertEqual(r.name, name) |