mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-09-24 23:31:36 +08:00
UI/updater: Fix files with similar hashes clashing
Do to multithreading the update process, files of the same hash can sometimes collide due to race. Ensure the filenames are all unique by appending an incremented value for each file.
This commit is contained in:
@@ -885,12 +885,16 @@ static void UpdateWithPatchIfAvailable(const char *name, const char *hash,
|
||||
update.fileSize = size;
|
||||
update.patchable = true;
|
||||
|
||||
/* ensure the filename is unique */
|
||||
static long increment = 0;
|
||||
|
||||
/* Since the patch depends on the previous version, we can
|
||||
* no longer rely on the temp name being unique to the
|
||||
* new file's hash */
|
||||
update.tempPath = tempPath;
|
||||
update.tempPath += L"\\";
|
||||
update.tempPath += patchHashStr;
|
||||
update.tempPath += std::to_wstring(increment++);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user