From 313fcd41abdb9f31f745e6554828de5a6cb5d150 Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Sun, 19 Feb 2006 04:05:39 +0000 Subject: PyEnumKey(): Stop including the trailing NUL byte in the returned string (logic error introduced by recent patch). --- PC/_winreg.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/PC/_winreg.c b/PC/_winreg.c index b80271d..007885c 100644 --- a/PC/_winreg.c +++ b/PC/_winreg.c @@ -832,9 +832,9 @@ Py2Reg(PyObject *value, DWORD typ, BYTE **retDataBuf, DWORD *retDataSize) void *src_buf; PyBufferProcs *pb = value->ob_type->tp_as_buffer; if (pb==NULL) { - PyErr_Format(PyExc_TypeError, + PyErr_Format(PyExc_TypeError, "Objects of type '%s' can not " - "be used as binary registry values", + "be used as binary registry values", value->ob_type->tp_name); return FALSE; } @@ -1039,14 +1039,13 @@ PyEnumKey(PyObject *self, PyObject *args) return NULL; if (!PyHKEY_AsHKEY(obKey, &hKey, FALSE)) return NULL; - + Py_BEGIN_ALLOW_THREADS rc = RegEnumKeyEx(hKey, index, tmpbuf, &len, NULL, NULL, NULL, NULL); Py_END_ALLOW_THREADS if (rc != ERROR_SUCCESS) return PyErr_SetFromWindowsErrWithFunction(rc, "RegEnumKeyEx"); - - ++len; /* include null terminator */ + retStr = PyString_FromStringAndSize(tmpbuf, len); return retStr; /* can be NULL */ } -- cgit v0.12