microsoft / microsoft/PowerToys

Bug: CopySelfToTempDir uses fixed temp path causing collision

Open Beginner friendly
#46,967 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-Setup/Install Product-General
Dominant language
C
Stars
139k
Forks
8.6k
PR merge metrics
PR metrics pending

Description

Description

CopySelfToTempDir in PowerToys.Update.cpp always writes to %TEMP%\PowerToys.Update.exe. Concurrent update processes overwrite each other's temp binary.

Impact

Low - requires concurrent update attempts which is rare.

Fix

Use a unique temp filename (e.g., append PID or GUID).

Found during multi-agent code review of #46889.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in PowerToys.Update.cpp at CopySelfToTempDir and inspect how the temporary executable path is constructed under %TEMP%. Change the path so concurrent update processes receive distinct filenames, then verify that simultaneous update attempts cannot overwrite the same temporary binary.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.