[PATCH v2 1/5] msacm32: Always initialize buffer lengths before calling RegEnumValue().
Zebediah Figura
z.figura12 at gmail.com
Mon Jul 27 20:02:32 CDT 2020
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/msacm32/internal.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/dlls/msacm32/internal.c b/dlls/msacm32/internal.c
index 9c4d1a75f3b..d6797bec40a 100644
--- a/dlls/msacm32/internal.c
+++ b/dlls/msacm32/internal.c
@@ -359,7 +359,7 @@ void MSACM_RegisterAllDrivers(void)
'W','i','n','d','o','w','s',' ','N','T','\\',
'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\',
'D','r','i','v','e','r','s','3','2','\0'};
- DWORD i, cnt, bufLen, lRet, type;
+ DWORD i, cnt, bufLen, lRet;
WCHAR buf[2048], valname[64], *name, *s;
FILETIME lastWrite;
HKEY hKey;
@@ -380,15 +380,16 @@ void MSACM_RegisterAllDrivers(void)
*name = 0;
MSACM_RegisterDriver(buf, name + 1, 0);
}
- i = 0;
- cnt = ARRAY_SIZE(valname);
- bufLen = sizeof(buf);
- while(RegEnumValueW(hKey, i, valname, &cnt, 0,
- &type, (BYTE*)buf, &bufLen) == ERROR_SUCCESS){
- if (!wcsnicmp(valname, msacmW, ARRAY_SIZE(msacmW)))
- MSACM_RegisterDriver(valname, buf, 0);
- ++i;
- }
+
+ for (i = 0; ; i++)
+ {
+ cnt = ARRAY_SIZE(valname);
+ bufLen = sizeof(buf);
+ if (RegEnumValueW(hKey, i, valname, &cnt, 0, NULL, (BYTE *)buf, &bufLen))
+ break;
+ if (!wcsnicmp(valname, msacmW, ARRAY_SIZE(msacmW)))
+ MSACM_RegisterDriver(valname, buf, 0);
+ }
RegCloseKey( hKey );
}
--
2.27.0
More information about the wine-devel
mailing list