...
|
...
|
@@ -810,11 +810,11 @@ int CLAMAPI Scan_ScanObject(CClamAVScanner *pScanner, const wchar_t *pObjectPath
|
810
|
810
|
instance *inst = (instance *)pScanner;
|
811
|
811
|
|
812
|
812
|
logg("*in Scan_ScanObject(pScanner = %p, pObjectPath = %S)\n", pScanner, pObjectPath);
|
813
|
|
- if((fhdl = CreateFileW(pObjectPath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_RANDOM_ACCESS, NULL)) == INVALID_HANDLE_VALUE) {
|
|
813
|
+ if((fhdl = CreateFileW(pObjectPath, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_FLAG_RANDOM_ACCESS, NULL)) == INVALID_HANDLE_VALUE) {
|
814
|
814
|
wchar_t *uncfname = uncpathw(pObjectPath);
|
815
|
815
|
if(!uncfname)
|
816
|
816
|
FAIL(CL_EMEM, "uncpathw() failed");
|
817
|
|
- fhdl = CreateFileW(uncfname, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_RANDOM_ACCESS, NULL);
|
|
817
|
+ fhdl = CreateFileW(uncfname, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_FLAG_RANDOM_ACCESS, NULL);
|
818
|
818
|
logg("*Scan_ScanObject translating '%S' to '%S'\n", pObjectPath, uncfname);
|
819
|
819
|
free(uncfname);
|
820
|
820
|
if(fhdl == INVALID_HANDLE_VALUE)
|