From b21287140dc8368e3b21ff56f66bdfd471afa5d6 Mon Sep 17 00:00:00 2001 From: Mike Griese Date: Tue, 9 Nov 2021 07:47:12 -0600 Subject: [PATCH] this is the right way to initialize the unique_hlocal_security_descriptor --- src/cascadia/TerminalSettingsModel/FileUtils.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/cascadia/TerminalSettingsModel/FileUtils.cpp b/src/cascadia/TerminalSettingsModel/FileUtils.cpp index 09b848598..06998daaa 100644 --- a/src/cascadia/TerminalSettingsModel/FileUtils.cpp +++ b/src/cascadia/TerminalSettingsModel/FileUtils.cpp @@ -240,7 +240,7 @@ namespace winrt::Microsoft::Terminal::Settings::Model const bool elevatedOnly) { SECURITY_ATTRIBUTES sa; - // wil::unique_hlocal_security_descriptor sd; + wil::unique_hlocal_security_descriptor sd; if (elevatedOnly) { // // This is very vaguely taken from @@ -288,18 +288,20 @@ namespace winrt::Microsoft::Terminal::Settings::Model // THROW_IF_WIN32_BOOL_FALSE(SetSecurityDescriptorDacl(&sd, true, pAcl, false)); unsigned long cb; - PSECURITY_DESCRIPTOR pSD{ nullptr }; + //PSECURITY_DESCRIPTOR pSD{ nullptr }; + ConvertStringSecurityDescriptorToSecurityDescriptor(L"S:(ML;;NW;;;HI)", SDDL_REVISION_1, - // wil::out_param_ptr(sd), - &pSD, + wil::out_param_ptr(sd), + // &pSD, + // sd.put(), &cb); // Initialize a security attributes structure. sa.nLength = sizeof(SECURITY_ATTRIBUTES); // sa.lpSecurityDescriptor = &sd; - // sa.lpSecurityDescriptor = sd.addressof(); - sa.lpSecurityDescriptor = pSD; + sa.lpSecurityDescriptor = sd.get(); + // sa.lpSecurityDescriptor = pSD; sa.bInheritHandle = false; }