193 } |
193 } |
194 |
194 |
195 // check if the given path is considered a secure directory for |
195 // check if the given path is considered a secure directory for |
196 // the backing store files. Returns true if the directory exists |
196 // the backing store files. Returns true if the directory exists |
197 // and is considered a secure location. Returns false if the path |
197 // and is considered a secure location. Returns false if the path |
198 // is a symbolic link or if an error occured. |
198 // is a symbolic link or if an error occurred. |
199 // |
199 // |
200 static bool is_directory_secure(const char* path) { |
200 static bool is_directory_secure(const char* path) { |
201 |
201 |
202 DWORD fa; |
202 DWORD fa; |
203 |
203 |
992 } |
992 } |
993 FREE_C_HEAP_ARRAY(char, newACL); |
993 FREE_C_HEAP_ARRAY(char, newACL); |
994 return false; |
994 return false; |
995 } |
995 } |
996 |
996 |
997 // if running on windows 2000 or later, set the automatic inheritence |
997 // if running on windows 2000 or later, set the automatic inheritance |
998 // control flags. |
998 // control flags. |
999 SetSecurityDescriptorControlFnPtr _SetSecurityDescriptorControl; |
999 SetSecurityDescriptorControlFnPtr _SetSecurityDescriptorControl; |
1000 _SetSecurityDescriptorControl = (SetSecurityDescriptorControlFnPtr) |
1000 _SetSecurityDescriptorControl = (SetSecurityDescriptorControlFnPtr) |
1001 GetProcAddress(GetModuleHandle(TEXT("advapi32.dll")), |
1001 GetProcAddress(GetModuleHandle(TEXT("advapi32.dll")), |
1002 "SetSecurityDescriptorControl"); |
1002 "SetSecurityDescriptorControl"); |
1003 |
1003 |
1004 if (_SetSecurityDescriptorControl != NULL) { |
1004 if (_SetSecurityDescriptorControl != NULL) { |
1005 // We do not want to further propogate inherited DACLs, so making them |
1005 // We do not want to further propagate inherited DACLs, so making them |
1006 // protected prevents that. |
1006 // protected prevents that. |
1007 if (!_SetSecurityDescriptorControl(pSD, SE_DACL_PROTECTED, |
1007 if (!_SetSecurityDescriptorControl(pSD, SE_DACL_PROTECTED, |
1008 SE_DACL_PROTECTED)) { |
1008 SE_DACL_PROTECTED)) { |
1009 if (PrintMiscellaneous && Verbose) { |
1009 if (PrintMiscellaneous && Verbose) { |
1010 warning("SetSecurityDescriptorControl failure:" |
1010 warning("SetSecurityDescriptorControl failure:" |