]> granicus.if.org Git - python/commitdiff
bpo-30601: Fix a refleak in WindowsConsoleIO (#2003)
authorVictor Stinner <victor.stinner@gmail.com>
Thu, 8 Jun 2017 16:19:25 +0000 (18:19 +0200)
committerGitHub <noreply@github.com>
Thu, 8 Jun 2017 16:19:25 +0000 (18:19 +0200)
Fix a reference leak in _io._WindowsConsoleIO: PyUnicode_FSDecoder()
always initialize decodedname when it succeed and it doesn't clear
input decodedname object.

Modules/_io/winconsoleio.c

index d51df7e8887cee595552bb168a897cf982e72dcc..781518a193c72133aa1182c01eadb8b6ee6d7495 100644 (file)
@@ -101,7 +101,7 @@ char _PyIO_get_console_type(PyObject *path_or_fd) {
 
     DWORD length;
     wchar_t name_buf[MAX_PATH], *pname_buf = name_buf;
-    
+
     length = GetFullPathNameW(decoded_wstr, MAX_PATH, pname_buf, NULL);
     if (length > MAX_PATH) {
         pname_buf = PyMem_New(wchar_t, length);
@@ -298,8 +298,7 @@ _io__WindowsConsoleIO___init___impl(winconsoleio *self, PyObject *nameobj,
     self->fd = fd;
 
     if (fd < 0) {
-        PyObject *decodedname = Py_None;
-        Py_INCREF(decodedname);
+        PyObject *decodedname;
 
         int d = PyUnicode_FSDecoder(nameobj, (void*)&decodedname);
         if (!d)