diff --git a/dll/shellext/ntobjshex/ntobjfolder.cpp b/dll/shellext/ntobjshex/ntobjfolder.cpp index f4aef063103..32c031619da 100644 --- a/dll/shellext/ntobjshex/ntobjfolder.cpp +++ b/dll/shellext/ntobjshex/ntobjfolder.cpp @@ -516,8 +516,13 @@ BOOL CNtObjectFolder::IsFolder(const NtPidlEntry * info) HRESULT CNtObjectFolder::GetInfoFromPidl(LPCITEMIDLIST pcidl, const NtPidlEntry ** pentry) { - NtPidlEntry * entry = (NtPidlEntry*) &(pcidl->mkid); + if (!pcidl) + { + DbgPrint("PCIDL is NULL\n"); + return E_INVALIDARG; + } + NtPidlEntry * entry = (NtPidlEntry*) &(pcidl->mkid); 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 83683f05171..ace12e5f173 100644 --- a/dll/shellext/ntobjshex/regfolder.cpp +++ b/dll/shellext/ntobjshex/regfolder.cpp @@ -469,8 +469,13 @@ BOOL CRegistryFolder::IsFolder(const RegPidlEntry * info) HRESULT CRegistryFolder::GetInfoFromPidl(LPCITEMIDLIST pcidl, const RegPidlEntry ** pentry) { - RegPidlEntry * entry = (RegPidlEntry*) &(pcidl->mkid); + if (!pcidl) + { + DbgPrint("PCIDL is NULL\n"); + return E_INVALIDARG; + } + RegPidlEntry * entry = (RegPidlEntry*) &(pcidl->mkid); if (entry->cb < sizeof(RegPidlEntry)) { DbgPrint("PCIDL too small %l (required %l)\n", entry->cb, sizeof(RegPidlEntry));