From 449b24ebe9db3265657152ea4edb60cde4a5136b Mon Sep 17 00:00:00 2001 From: Neal Norwitz Date: Thu, 20 Apr 2006 06:56:05 +0000 Subject: [PATCH] Address issues brought up by MvL on python-checkins. I tested this with valgrind on amd64. The man pages I found for diff architectures are inconsistent on this. I'm not entirely sure this change is correct for all architectures either. Perhaps we should just over-allocate and not worry about it? --- Modules/posixmodule.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 4b5842e8629..b51ba5dc54c 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -6809,7 +6809,7 @@ posix_confstr(PyObject *self, PyObject *args) { PyObject *result = NULL; int name; - char buffer[64]; + char buffer[256]; if (PyArg_ParseTuple(args, "O&:confstr", conv_confstr_confname, &name)) { int len; @@ -6827,12 +6827,12 @@ posix_confstr(PyObject *self, PyObject *args) } else { if ((unsigned int)len >= sizeof(buffer)) { - result = PyString_FromStringAndSize(NULL, len+1); + result = PyString_FromStringAndSize(NULL, len-1); if (result != NULL) - confstr(name, PyString_AS_STRING(result), len+1); + confstr(name, PyString_AS_STRING(result), len); } else - result = PyString_FromString(buffer); + result = PyString_FromStringAndSize(buffer, len-1); } } return result;