Nikolay Sivov : oleview: Fix buffer length passed to Reg* functions ( Coverity).
Module: wine Branch: master Commit: 3db8af259cee7e8d57d45aaea9bb9a2c1d88b0a7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3db8af259cee7e8d57d45aaea9... Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Mon Mar 7 23:02:24 2016 +0300 oleview: Fix buffer length passed to Reg* functions (Coverity). Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- programs/oleview/details.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/programs/oleview/details.c b/programs/oleview/details.c index 49d3dc4..b194f6f 100644 --- a/programs/oleview/details.c +++ b/programs/oleview/details.c @@ -51,8 +51,8 @@ static void CreateRegRec(HKEY hKey, HTREEITEM parent, WCHAR *wszKeyName, BOOL ad while(TRUE) { - lenName = sizeof(WCHAR[MAX_LOAD_STRING])/sizeof(WCHAR); - lenData = sizeof(WCHAR[MAX_LOAD_STRING]); + lenName = sizeof(wszName)/sizeof(WCHAR); + lenData = sizeof(wszData); retEnum = RegEnumValueW(hKey, i, wszName, &lenName, NULL, &valType, (LPBYTE)wszData, &lenData); @@ -100,8 +100,7 @@ static void CreateRegRec(HKEY hKey, HTREEITEM parent, WCHAR *wszKeyName, BOOL ad tvis.hParent = TVI_ROOT; tvis.hParent = TreeView_InsertItemW(details.hReg, &tvis); - lenName = sizeof(WCHAR[MAX_LOAD_STRING]); - + lenName = sizeof(wszName); RegQueryValueW(hCurKey, NULL, wszName, (LONG *)&lenName); RegCloseKey(hCurKey); @@ -116,13 +115,12 @@ static void CreateRegRec(HKEY hKey, HTREEITEM parent, WCHAR *wszKeyName, BOOL ad } i=-1; - lenName = sizeof(WCHAR[MAX_LOAD_STRING]); while(TRUE) { i++; - if(RegEnumKeyW(hKey, i, wszName, lenName) != ERROR_SUCCESS) break; + if(RegEnumKeyW(hKey, i, wszName, sizeof(wszName)/sizeof(WCHAR)) != ERROR_SUCCESS) break; if(RegOpenKeyW(hKey, wszName, &hCurKey) != ERROR_SUCCESS) continue; @@ -131,8 +129,7 @@ static void CreateRegRec(HKEY hKey, HTREEITEM parent, WCHAR *wszKeyName, BOOL ad if(addings && !memcmp(wszName, wszProgID, sizeof(WCHAR[7]))) { - lenData = sizeof(WCHAR[MAX_LOAD_STRING]); - + lenData = sizeof(wszData); RegQueryValueW(hCurKey, NULL, wszData, (LONG *)&lenData); RegCloseKey(hCurKey); @@ -149,7 +146,7 @@ static void CreateRegRec(HKEY hKey, HTREEITEM parent, WCHAR *wszKeyName, BOOL ad RegOpenKeyW(HKEY_CLASSES_ROOT, wszCLSID, &hCurKey); - lenName = sizeof(WCHAR[MAX_LOAD_STRING]); + lenName = sizeof(wszName); RegQueryValueW(hCurKey, NULL, wszName, (LONG *)&lenName); tvis.hParent = TVI_ROOT; @@ -171,14 +168,13 @@ static void CreateRegRec(HKEY hKey, HTREEITEM parent, WCHAR *wszKeyName, BOOL ad } else if(addings && !memcmp(wszName, wszTypeLib, sizeof(WCHAR[8]))) { - lenData = sizeof(WCHAR[MAX_LOAD_STRING]); - + lenData = sizeof(wszData); RegQueryValueW(hCurKey, NULL, wszData, (LONG *)&lenData); RegCloseKey(hCurKey); RegOpenKeyW(HKEY_CLASSES_ROOT, wszTypeLib, &hCurKey); - lenName = sizeof(WCHAR[MAX_LOAD_STRING]); + lenName = sizeof(wszName); RegQueryValueW(hCurKey, NULL, wszName, (LONG *)&lenName); tvis.hParent = TVI_ROOT;
participants (1)
-
Alexandre Julliard