diff options
author | Kurt Schwehr <schwehr@google.com> | 2017-05-30 12:42:36 -0700 |
---|---|---|
committer | Fred Wright <fw@fwright.net> | 2017-07-18 14:34:03 -0700 |
commit | 41d6fa9fb4e4665b4afbbd851eee188d596084ea (patch) | |
tree | fedc5ca707b6edbe3ed383235890df37fcf2bc84 /gpspacket.c | |
parent | 795908afe3435d3095bb9ceb81c8b35fd1e22805 (diff) | |
download | gpsd-41d6fa9fb4e4665b4afbbd851eee188d596084ea.tar.gz |
Fix ref-leak of PyObject_Call.
Py_XDECREF is slightly safer than Py_DECREF (not NULL-safe).
https://docs.python.org/3/extending/extending.html
The return value is a brand new object, or it is an existing object
whose reference count has been incremented.
Signed-off-by: Fred Wright <fw@fwright.net>
TESTED:
Verified that gpscat still works. - fw
Diffstat (limited to 'gpspacket.c')
-rw-r--r-- | gpspacket.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gpspacket.c b/gpspacket.c index 58ec5db2..bbeefb12 100644 --- a/gpspacket.c +++ b/gpspacket.c @@ -53,7 +53,8 @@ void gpsd_log(const struct gpsd_errout_t *errout UNUSED, if (!args) return; - PyObject_Call(report_callback, args, NULL); + PyObject *result = PyObject_Call(report_callback, args, NULL); + Py_XDECREF(result); Py_DECREF(args); } |