From a48fe4363150f094de326273ad3e965a0ea54c43 Mon Sep 17 00:00:00 2001 From: Kamil Hornicek Date: Wed, 22 Oct 2014 12:13:40 +0000 Subject: [PATCH] [MSCONFIG] - fix CID 503793 (unlikely NULL pointer dereference), 514558 (check return value) svn path=/trunk/; revision=64884 --- reactos/base/applications/msconfig/srvpage.c | 17 +++++++---------- .../base/applications/msconfig/startuppage.c | 6 +++++- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/reactos/base/applications/msconfig/srvpage.c b/reactos/base/applications/msconfig/srvpage.c index 4cfd62e6cc9..44870c0c87e 100644 --- a/reactos/base/applications/msconfig/srvpage.c +++ b/reactos/base/applications/msconfig/srvpage.c @@ -187,19 +187,16 @@ GetServices ( void ) return; } } - if (pServiceFailureActions->cActions) - { - if (pServiceFailureActions->lpsaActions[0].Type == SC_ACTION_REBOOT) - { - LoadString(hInst, IDS_SERVICES_YES, szStatus, 128); - item.pszText = szStatus; - item.iSubItem = 1; - SendMessage(hServicesListCtrl, LVM_SETITEMTEXT, item.iItem, (LPARAM) &item); - } - } if (pServiceFailureActions != NULL) { + if (pServiceFailureActions->cActions && pServiceFailureActions->lpsaActions[0].Type == SC_ACTION_REBOOT) + { + LoadString(hInst, IDS_SERVICES_YES, szStatus, 128); + item.pszText = szStatus; + item.iSubItem = 1; + SendMessage(hServicesListCtrl, LVM_SETITEMTEXT, item.iItem, (LPARAM) &item); + } HeapFree(GetProcessHeap(), 0, pServiceFailureActions); pServiceFailureActions = NULL; } diff --git a/reactos/base/applications/msconfig/startuppage.c b/reactos/base/applications/msconfig/startuppage.c index 4d65a0fb12e..e535893e04d 100644 --- a/reactos/base/applications/msconfig/startuppage.c +++ b/reactos/base/applications/msconfig/startuppage.c @@ -97,7 +97,11 @@ GetDisabledAutostartEntriesFromRegistry (TCHAR * szBasePath) if (Data == NULL) break; - RegEnumKeyEx(hKey, Index, szValueName, &dwValueLength, NULL, NULL, NULL, NULL); + if(RegEnumKeyEx(hKey, Index, szValueName, &dwValueLength, NULL, NULL, NULL, NULL) != ERROR_SUCCESS) + { + HeapFree(GetProcessHeap(), 0, Data); + continue; + } _stprintf(szSubPath, _T("%s\\%s"), szBasePath, szValueName); memset(&item, 0, sizeof(LV_ITEM)); item.mask = LVIF_TEXT;