Commit e61aca7d authored by Mark Hammond's avatar Mark Hammond

Patch for [ Bug #113828 ] getpythonregpath with null data in registry key

If there was a NULL registry key, Python could barf.

Also wraps some surrounding lines to 80 chars.
parent bb307343
......@@ -263,7 +263,9 @@ getpythonregpath(HKEY keyBase, int skipcore)
if (reqdSize) {
ppPaths[index] = malloc(reqdSize);
if (ppPaths[index]) {
RegQueryValueEx(subKey, NULL, 0, NULL, (LPBYTE)ppPaths[index], &reqdSize);
RegQueryValueEx(subKey, NULL, 0, NULL,
(LPBYTE)ppPaths[index],
&reqdSize);
dataSize += reqdSize + 1; /* 1 for the ";" */
}
}
......@@ -275,23 +277,27 @@ getpythonregpath(HKEY keyBase, int skipcore)
DWORD reqdSize = dataSize;
/* Copy our collected strings */
for (index=0;index<numKeys;index++) {
int len;
if (index > 0) {
*(szCur++) = _T(';');
dataSize--;
}
len = _tcslen(ppPaths[index]);
_tcsncpy(szCur, ppPaths[index], len);
szCur += len;
dataSize -= len;
if (ppPaths[index]) {
int len = _tcslen(ppPaths[index]);
_tcsncpy(szCur, ppPaths[index], len);
szCur += len;
dataSize -= len;
}
}
if (skipcore)
*szCur = '\0';
else {
*(szCur++) = _T(';');
dataSize--;
/* Now append the core path entries - this will include the NULL */
rc = RegQueryValueEx(newKey, NULL, 0, NULL, (LPBYTE)szCur, &dataSize);
/* Now append the core path entries -
this will include the NULL
*/
rc = RegQueryValueEx(newKey, NULL, 0, NULL,
(LPBYTE)szCur, &dataSize);
}
/* And set the result - caller must free
If MBCS, it is fine as is. If Unicode, allocate new
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment