Author: cfinck
Date: Tue Jun 30 16:08:16 2015
New Revision: 68324
URL:
http://svn.reactos.org/svn/reactos?rev=68324&view=rev
Log:
[LOCALSPL]
Bugfix: The RegEnum* functions take the buffer size _including_ the terminating null
character as input and only return the actual data length _without_ the terminating null
character as output.
Modified:
branches/colins-printing-for-freedom/reactos/win32ss/printing/providers/localspl/printprocessors.c
Modified:
branches/colins-printing-for-freedom/reactos/win32ss/printing/providers/localspl/printprocessors.c
URL:
http://svn.reactos.org/svn/reactos/branches/colins-printing-for-freedom/rea…
==============================================================================
---
branches/colins-printing-for-freedom/reactos/win32ss/printing/providers/localspl/printprocessors.c [iso-8859-1]
(original)
+++
branches/colins-printing-for-freedom/reactos/win32ss/printing/providers/localspl/printprocessors.c [iso-8859-1]
Tue Jun 30 16:08:16 2015
@@ -192,7 +192,7 @@
}
// Get the name of this Print Processor.
- cchPrintProcessorName = cchMaxSubKey;
+ cchPrintProcessorName = cchMaxSubKey + 1;
lStatus = RegEnumKeyExW(hSubKey, i, pwszPrintProcessorName,
&cchPrintProcessorName, NULL, NULL, NULL, NULL);
if (lStatus != ERROR_SUCCESS)
{
@@ -498,7 +498,7 @@
{
// RegEnumKeyExW sucks! Unlike similar API functions, it only returns the actual
numbers of characters copied when you supply a buffer large enough.
// So use pwszTemp with its size cchMaxSubKey for this.
- cchPrintProcessor = cchMaxSubKey;
+ cchPrintProcessor = cchMaxSubKey + 1;
dwErrorCode = (DWORD)RegEnumKeyExW(hSubKey, i, pwszTemp, &cchPrintProcessor,
NULL, NULL, NULL, NULL);
if (dwErrorCode != ERROR_SUCCESS)
{
@@ -524,7 +524,7 @@
for (i = 0; i < *pcReturned; i++)
{
// This isn't really correct, but doesn't cause any harm, because
we've extensively checked the size of the supplied buffer above.
- cchPrintProcessor = cchMaxSubKey;
+ cchPrintProcessor = cchMaxSubKey + 1;
// Copy the Print Processor name.
dwErrorCode = (DWORD)RegEnumKeyExW(hSubKey, i,
(PWSTR)pCurrentOutputPrintProcessor, &cchPrintProcessor, NULL, NULL, NULL, NULL);