When we encounter a failure, all previously borrowed references should
be freed. Especially if the program is not failing immediately
This patch must be backported as far as 2.0.
(cherry picked from commit
2417ebcc013b23ac961afb436b9b2dead32c28b0)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit
9fe95de0df2748362fddc4acf84dd19c40de6a9f)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
key = PyString_FromString("name");
if (key == NULL) {
Py_DECREF(kw_args);
+ Py_DECREF(ent);
PyErr_Print();
return 0;
}
if (func == NULL) {
Py_DECREF(kw_args);
Py_DECREF(ent);
+ Py_DECREF(key);
PyErr_Print();
return 0;
}
if (ip_dict == NULL) {
Py_DECREF(kw_args);
Py_DECREF(ent);
+ Py_DECREF(key);
Py_DECREF(func);
PyErr_Print();
return 0;
if (ip_name == NULL) {
Py_DECREF(kw_args);
Py_DECREF(ent);
+ Py_DECREF(key);
Py_DECREF(func);
Py_DECREF(ip_dict);
PyErr_Print();
if (ip_value == NULL) {
Py_DECREF(kw_args);
Py_DECREF(ent);
+ Py_DECREF(key);
Py_DECREF(func);
Py_DECREF(ip_dict);
Py_DECREF(ip_name);
Py_DECREF(ip_name);
Py_DECREF(ip_value);
if (ret == -1) {
+ Py_DECREF(kw_args);
+ Py_DECREF(ent);
+ Py_DECREF(key);
+ Py_DECREF(func);
Py_DECREF(ip_dict);
PyErr_Print();
return 0;