diff --git a/dll/shellext/ntobjshex/ntobjfolder.cpp b/dll/shellext/ntobjshex/ntobjfolder.cpp index 056bf67ca8..899edb382d 100644 --- a/dll/shellext/ntobjshex/ntobjfolder.cpp +++ b/dll/shellext/ntobjshex/ntobjfolder.cpp @@ -484,6 +484,12 @@ HRESULT CNtObjectFolder::GetInfoFromPidl(LPCITEMIDLIST pcidl, const NtPidlEntry { NtPidlEntry * entry = (NtPidlEntry*) &(pcidl->mkid); + if(!entry) + { + DbgPrint("PCIDL with NULL mkid\n"); + return E_INVALIDARG; + } + if (entry->cb < sizeof(NtPidlEntry)) { DbgPrint("PCIDL too small %l (required %l)\n", entry->cb, sizeof(NtPidlEntry)); diff --git a/dll/shellext/ntobjshex/regfolder.cpp b/dll/shellext/ntobjshex/regfolder.cpp index 70f1575d51..80916fea14 100644 --- a/dll/shellext/ntobjshex/regfolder.cpp +++ b/dll/shellext/ntobjshex/regfolder.cpp @@ -428,6 +428,12 @@ HRESULT CRegistryFolder::GetInfoFromPidl(LPCITEMIDLIST pcidl, const RegPidlEntry { RegPidlEntry * entry = (RegPidlEntry*) &(pcidl->mkid); + if(!entry) + { + DbgPrint("PCIDL with NULL mkid\n"); + return E_INVALIDARG; + } + if (entry->cb < sizeof(RegPidlEntry)) { DbgPrint("PCIDL too small %l (required %l)\n", entry->cb, sizeof(RegPidlEntry));