We copy the local variable Resolved into Storage to keep it around. However, we then still let the SearchDir ref point to Resolved which then is used to access the already freed memory later on. With this patch we point to Storage which doesn't get deleted after the current scope exits.
Discovered by memory sanitizer in the CompletionTest.DirCompletionUsername test.