diff options
Diffstat (limited to 'src/binder/assemblybinder.cpp')
-rw-r--r-- | src/binder/assemblybinder.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/binder/assemblybinder.cpp b/src/binder/assemblybinder.cpp index 1e68e55002..1e760ee80a 100644 --- a/src/binder/assemblybinder.cpp +++ b/src/binder/assemblybinder.cpp @@ -173,9 +173,18 @@ namespace BINDER_SPACE dwCCFullAssemblyPath, pwzFullAssemblyPath, NULL); + if (dwCCFullAssemblyPath > MAX_LONGPATH) + { + fullAssemblyPath.CloseBuffer(); + pwzFullAssemblyPath = fullAssemblyPath.OpenUnicodeBuffer(dwCCFullAssemblyPath - 1); + dwCCFullAssemblyPath = WszGetFullPathName(assemblyPath.GetUnicode(), + dwCCFullAssemblyPath, + pwzFullAssemblyPath, + NULL); + } fullAssemblyPath.CloseBuffer(dwCCFullAssemblyPath); - if ((dwCCFullAssemblyPath == 0) || (dwCCFullAssemblyPath > (MAX_LONGPATH + 1))) + if (dwCCFullAssemblyPath == 0) { hr = HRESULT_FROM_GetLastError(); } |