Index: cloud_print/virtual_driver/win/install/setup.cc |
diff --git a/cloud_print/virtual_driver/win/install/setup.cc b/cloud_print/virtual_driver/win/install/setup.cc |
index 8613f3a0d2b9c09e1e938f2f9c78014ecdc9f24b..0a0cfe48f2de647103e758053527e89f08c8f6b4 100644 |
--- a/cloud_print/virtual_driver/win/install/setup.cc |
+++ b/cloud_print/virtual_driver/win/install/setup.cc |
@@ -210,6 +210,7 @@ UINT CALLBACK CabinetCallback(PVOID data, |
} |
void ReadyDriverDependencies(const base::FilePath& destination) { |
+ base::FilePath destination_copy(destination); |
if (base::win::GetVersion() >= base::win::VERSION_VISTA) { |
// GetCorePrinterDrivers and GetPrinterDriverPackagePath only exist on |
// Vista and later. Winspool.drv must be delayloaded so these calls don't |
@@ -221,15 +222,14 @@ void ReadyDriverDependencies(const base::FilePath& destination) { |
1, &driver); |
GetPrinterDriverPackagePath(NULL, NULL, NULL, driver.szPackageID, |
package_path, MAX_PATH, &size); |
- SetupIterateCabinet(package_path, 0, &CabinetCallback, |
- &base::FilePath(destination)); |
+ SetupIterateCabinet(package_path, 0, &CabinetCallback, &destination_copy); |
} else { |
// Driver files are in the sp3 cab. |
base::FilePath package_path; |
PathService::Get(base::DIR_WINDOWS, &package_path); |
package_path = package_path.Append(L"Driver Cache\\i386\\sp3.cab"); |
SetupIterateCabinet(package_path.value().c_str(), 0, &CabinetCallback, |
- &base::FilePath(destination)); |
+ &destination_copy); |
// Copy the rest from the driver cache or system dir. |
base::FilePath driver_cache_path; |