From: Tim Peters <tim.peters@gmail.com>
Date: Wed, 1 Mar 2006 04:35:45 +0000 (+0000)
Subject: Repair mangled code in the Windows flavor of
X-Git-Tag: v2.5a0~450
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=67d70eb957faf61e0cba548fcad374ec361429c4;p=python

Repair mangled code in the Windows flavor of
posix__getfullpathname().

In partial answer to the now-deleted XXX comment:

	/* XXX(twouters) Why use 'et#' here at all? insize isn't used */

`insize` is an input parameter too, and it was left uninitialized,
leading to seemingly random failures.
---

diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index efe5074135..6949c901b7 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -1901,7 +1901,7 @@ posix__getfullpathname(PyObject *self, PyObject *args)
 	/* assume encoded strings wont more than double no of chars */
 	char inbuf[MAX_PATH*2];
 	char *inbufp = inbuf;
-	Py_ssize_t insize;
+	Py_ssize_t insize = sizeof(inbuf);
 	char outbuf[MAX_PATH*2];
 	char *temp;
 #ifdef Py_WIN_WIDE_FILENAMES
@@ -1921,7 +1921,6 @@ posix__getfullpathname(PyObject *self, PyObject *args)
 		PyErr_Clear();
 	}
 #endif
-	/* XXX(twouters) Why use 'et#' here at all? insize isn't used */
 	if (!PyArg_ParseTuple (args, "et#:_getfullpathname",
 	                       Py_FileSystemDefaultEncoding, &inbufp,
 	                       &insize))