diff --git a/src/main/policy.c b/src/main/policy.c index 0b91e1066..f3d43ac34 100644 --- a/src/main/policy.c +++ b/src/main/policy.c @@ -1238,6 +1238,7 @@ int set_as_metrics_policy_using_pyobject(as_error *err, goto error; } const char *report_dir = convert_pyobject_to_str(py_report_dir); + Py_DECREF(py_report_dir); if (!report_dir) { as_error_update(err, AEROSPIKE_ERR_PARAM, INVALID_ATTR_TYPE_ERROR_MSG, "report_dir", "str"); @@ -1261,6 +1262,7 @@ int set_as_metrics_policy_using_pyobject(as_error *err, uint64_t report_size_limit = convert_pyobject_to_uint64_t(py_report_size_limit); + Py_DECREF(py_report_size_limit); if (PyErr_Occurred()) { as_error_update(err, AEROSPIKE_ERR_PARAM, INVALID_ATTR_TYPE_ERROR_MSG, report_size_limit_attr_name, "unsigned 64-bit integer"); @@ -1278,6 +1280,7 @@ int set_as_metrics_policy_using_pyobject(as_error *err, } uint32_t interval = convert_pyobject_to_uint32_t(py_interval); + Py_DECREF(py_interval); if (PyErr_Occurred()) { as_error_update(err, AEROSPIKE_ERR_PARAM, INVALID_ATTR_TYPE_ERROR_MSG, interval_field_name, "unsigned 32-bit integer"); @@ -1299,6 +1302,7 @@ int set_as_metrics_policy_using_pyobject(as_error *err, } uint8_t attr_value = convert_pyobject_to_uint8_t(py_attr_value); + Py_DECREF(py_attr_value); if (PyErr_Occurred()) { as_error_update(err, AEROSPIKE_ERR_PARAM, INVALID_ATTR_TYPE_ERROR_MSG, uint8_field_names[i],