We have received multiple crash reports in Microsoft Hardware Center (sysdev) caused by ShellStreams64.dll (shell extension) which is part of Apple's iCloud Control Panel on Windows.
Affected versions of the dll:
C:\Program Files\Common Files\Apple\Internet Services\ShellStreams64.dll
version: 53.00.0.7
version: 53.00.0.56
The stack trace:
ucrtbase.dll!abort () Unknown
ucrtbase.dll!terminate () Unknown
> SmartFTP.exe!__scrt_unhandled_exception_filter(_EXCEPTION_POINTERS * const pointers) Line 75 C++
KERNELBASE.dll!UnhandledExceptionFilter () Unknown
ntdll.dll!TppExceptionFilter() Unknown
ntdll.dll!TppWorkerpInnerExceptionFilter() Unknown
ntdll.dll!TppWorkerThread$filt$0() Unknown
ntdll.dll!__C_specific_handler () Unknown
ntdll.dll!__GSHandlerCheck_SEH () Unknown
ntdll.dll!RtlpExecuteHandlerForException () Unknown
ntdll.dll!RtlDispatchException() Unknown
ntdll.dll!RtlRaiseException() Unknown
KERNELBASE.dll!RaiseException () Unknown
msvcr120.dll!_CxxThrowException(void * pExceptionObject, const _s__ThrowInfo * pThrowInfo) Line 154 C++
msvcp120.dll!std::_Xlength_error(const char * _Message) Line 19 C++
ShellStreams64.dll!00007ffe25337756() Unknown
ShellStreams64.dll!00007ffe2537c8ac() Unknown
ShellStreams64.dll!00007ffe2537c840() Unknown
ShellStreams64.dll!00007ffe2537c3c2() Unknown
ShellStreams64.dll!00007ffe253744d3() Unknown
ShellStreams64.dll!00007ffe253894d1() Unknown
windows.storage.dll!CRegFolder::BindToObject(struct _ITEMIDLIST_RELATIVE const *,struct IBindCtx *,struct _GUID const &,void * *) Unknown
windows.storage.dll!CShellItem::BindToHandler(struct IBindCtx *,struct _GUID const &,struct _GUID const &,void * *) Unknown
windows.storage.dll!GetRelatedItem<struct IIdentityName>(struct IShellItem *,struct IBindCtx *,bool,struct _GUID const &,void * *) Unknown
windows.storage.dll!CShellItem::Compare(struct IShellItem *,unsigned long,int *) Unknown
windows.storage.dll!CAutoDestItemsList::CheckForDuplicateItem(struct IShellItem *) Unknown
windows.storage.dll!CAutoDestItemsList::_AddDestinationList(struct IAutomaticDestinationList *,enum DESTLISTTYPE,class wistd::function<long > const &) Unknown
windows.storage.dll!CAutoDestItemsList::Refresh(class wistd::function<long > const &) Unknown
windows.storage.dll!CAutoDestItemsEnum::_EnsureInit(void) Unknown
windows.storage.dll!CAutoDestItemsEnum::Next(unsigned long,struct _ITEMID_CHILD * *,unsigned long *) Unknown
windows.storage.dll!CRegFolderEnum::Next(unsigned long,struct _ITEMID_CHILD * *,unsigned long *) Unknown
explorerframe.dll!CNscEnumTask::InternalResumeRT() Unknown
explorerframe.dll!CRunnableTask::Run() Unknown
windows.storage.dll!CShellTask::TT_Run(bool *) Unknown
windows.storage.dll!CShellTaskThread::ThreadProc(void) Unknown
windows.storage.dll!CShellTaskThread::s_ThreadProc(void *) Unknown
SHCore.dll!ExecuteWorkItemThreadProc () Unknown
ntdll.dll!RtlpTpWorkCallback () Unknown
ntdll.dll!TppWorkerThread() Unknown
kernel32.dll!BaseThreadInitThunk () Unknown
ntdll.dll!RtlUserThreadStart () Unknown
You notice that the crash happens during the enumeration of the quick access folder in the shell's namespace control (tree control). The BindToObject (IShellFolder) implementation of your object is throwing a c++ exception for some reason. This should not happen even if the function fails. Instead the function should return a HRESULT error code.
We were unable to reproduce the problem on our system but from the number of crash reports (100s) we get, a lot of customers are affected. We are happy to share the full heap crash dumps for further inspection.
Regards,
Mat