summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@collabora.com>2021-07-19 15:14:17 +0100
committerSimon McVittie <smcv@collabora.com>2021-07-19 15:14:17 +0100
commit4412ceb80d58ca200c32af282f3eadca6f29f9bb (patch)
tree43ddfead76bd0e4aca221007e16269f351fe09e7
parente4e401127bbd323b220ca07aa08eafd0fb4c0270 (diff)
downloaddbus-python-4412ceb80d58ca200c32af282f3eadca6f29f9bb.tar.gz
unixfd: Don't leak self if variant_level < 0
Signed-off-by: Simon McVittie <smcv@collabora.com>
-rw-r--r--dbus_bindings/unixfd.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/dbus_bindings/unixfd.c b/dbus_bindings/unixfd.c
index 3da9323..ed99386 100644
--- a/dbus_bindings/unixfd.c
+++ b/dbus_bindings/unixfd.c
@@ -111,6 +111,11 @@ UnixFd_tp_new(PyTypeObject *cls, PyObject *args, PyObject *kwargs)
return NULL;
}
+ if (variant_level < 0) {
+ PyErr_Format(PyExc_ValueError, "variant_level cannot be less than 0");
+ return NULL;
+ }
+
status = make_fd(arg, &fd_original);
if (status < 0)
return NULL;
@@ -151,10 +156,6 @@ UnixFd_tp_new(PyTypeObject *cls, PyObject *args, PyObject *kwargs)
}
self->fd = fd;
- if (variant_level < 0) {
- PyErr_Format(PyExc_ValueError, "variant_level cannot be less than 0");
- return NULL;
- }
self->variant_level = variant_level;
return (PyObject *)self;