From 6f5b741a4696bc8f331b1d9c77307940528813ff Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Thu, 16 Dec 2004 23:52:04 +0000 Subject: SF bug #1086555: refcount problem in syslog --- Modules/syslogmodule.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Modules/syslogmodule.c b/Modules/syslogmodule.c index 75deb1b..1f2b874 100644 --- a/Modules/syslogmodule.c +++ b/Modules/syslogmodule.c @@ -57,17 +57,18 @@ syslog_openlog(PyObject * self, PyObject * args) { long logopt = 0; long facility = LOG_USER; + PyObject *new_S_ident_o; - - Py_XDECREF(S_ident_o); if (!PyArg_ParseTuple(args, "S|ll;ident string [, logoption [, facility]]", - &S_ident_o, &logopt, &facility)) + &new_S_ident_o, &logopt, &facility)) return NULL; /* This is needed because openlog() does NOT make a copy * and syslog() later uses it.. cannot trash it. */ + Py_XDECREF(S_ident_o); + S_ident_o = new_S_ident_o; Py_INCREF(S_ident_o); openlog(PyString_AsString(S_ident_o), logopt, facility); -- cgit v0.12