Page MenuHome GnuPG

Do not make use of the VirtualStore under Windows
Closed, ResolvedPublic


Our applications are build with basic XP compatibility. Thus creating a file in a directory w/o write permissions will instead put the file under AppData\local\VirtualStore and subsequent access to that file will also be redirected to that local-per-user directory. This is a bit surprising and also has the effect that it is possible to write a directory with insufficient permissions and later read the file - as long as this is done with a legacy 32 bit application. 64-bit applictions won't see the file then at the expected location.

My suggestion is to change all our tools to not make use of this virtualization features. According to Microsoft that feature will anyway be removed eventually.

Event Timeline

werner triaged this task as High priority.May 23 2023, 1:15 PM
werner created this task.
werner created this object with edit policy "Contributor (Project)".

Kleopatra test case (similar to gpg):

[7088] org.kde.pim.kleopatra: ("test_ä.txt")
[7088] org.kde.pim.kleopatra: Moving  "C:/Users/g10code.WIN-TEST3/AppData/Local/Temp/kleopatra-CxFKCu/test_ä.txt"  to  "C:/Program Files (x86)/GnuPG/test_ä.txt"

And after trying that again, you are asked if you want to overwrite the file C:/Program Files (x86)/GnuPG/test_ä.txt. But you do not see it, hidden or otherwise as it is in the VirtualStore.

werner edited projects, added gnupg24 (gnupg-2.4.2); removed gnupg24.
werner changed the task status from Open to Testing.Jun 5 2023, 12:53 PM
werner lowered the priority of this task from High to Normal.

Works in kleopatra; tested with gpg4win-4.2.0-beta339.

ebo added a subscriber: ebo.

works with VS-Desktop-, too.
You are now informed that you do not have permissions to write there.

ebo edited projects, added gnupg22 (gnupg-2.2.42); removed gnupg22.