As per https://docs.python.org/3/c-api/object.html#c.PyObject_Call,
positional arguments should be an empty tuple when not used.
Previously the code had a dictionary instead of tuple. This commit is to
fix it and use tuple to avoid unexpected consequences
---
contrib/spoa_server/ps_python.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/contrib/spoa_server/ps_python.c b/contrib/spoa_server/ps_python.c
index f2ddc16..20861d6 100644
--- a/contrib/spoa_server/ps_python.c
+++ b/contrib/spoa_server/ps_python.c
@@ -43,7 +43,7 @@ static PyObject *module_ipaddress;
static PyObject *ipv4_address;
static PyObject *ipv6_address;
static PyObject *spoa_error;
-static PyObject *empty_array;
+static PyObject *empty_tuple;
static struct worker *worker;
static int ps_python_start_worker(struct worker *w);
@@ -522,8 +522,8 @@ static int ps_python_start_worker(struct worker *w)
return 0;
}
- empty_array = PyDict_New();
- if (empty_array == NULL) {
+ empty_tuple = PyTuple_New(0);
+ if (empty_tuple == NULL) {
PyErr_Print();
return 0;
}
@@ -710,7 +710,7 @@ static int ps_python_exec_message(struct worker *w, void
*ref, int nargs, struct
PyErr_Print();
return 0;
}
- value = PyObject_Call(func, empty_array, ip_dict);
+ value = PyObject_Call(func, empty_tuple, ip_dict);
Py_DECREF(func);
Py_DECREF(ip_dict);
break;
@@ -780,7 +780,7 @@ static int ps_python_exec_message(struct worker *w, void
*ref, int nargs, struct
return 0;
}
- result = PyObject_Call(python_ref, empty_array, fkw);
+ result = PyObject_Call(python_ref, empty_tuple, fkw);
Py_DECREF(fkw);
if (result == NULL) {
PyErr_Print();
--
2.23.3