diff options
Diffstat (limited to 'sandbox/src/acl.h')
-rw-r--r-- | sandbox/src/acl.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/sandbox/src/acl.h b/sandbox/src/acl.h new file mode 100644 index 0000000..d452011 --- /dev/null +++ b/sandbox/src/acl.h @@ -0,0 +1,41 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef SANDBOX_SRC_ACL_H_ +#define SANDBOX_SRC_ACL_H_ + +#include <windows.h> + +#include "base/memory/scoped_ptr.h" +#include "sandbox/src/sid.h" + +namespace sandbox { + +// Returns the default dacl from the token passed in. +bool GetDefaultDacl(HANDLE token, + scoped_ptr_malloc<TOKEN_DEFAULT_DACL>* default_dacl); + +// Appends an ACE represented by |sid| and |access| to |old_dacl|. If the +// function succeeds, new_dacl contains the new dacl and must be freed using +// LocalFree. +bool AddSidToDacl(const Sid& sid, ACL* old_dacl, ACCESS_MASK access, + ACL** new_dacl); + +// Adds and ACE represented by |sid| and |access| to the default dacl present +// in the token. +bool AddSidToDefaultDacl(HANDLE token, const Sid& sid, ACCESS_MASK access); + +// Adds an ACE represented by the user sid and |access| to the default dacl +// present in the token. +bool AddUserSidToDefaultDacl(HANDLE token, ACCESS_MASK access); + +// Adds an ACE represented by |known_sid| and |access| to the dacl of the kernel +// object referenced by |object|. +bool AddKnownSidToKernelObject(HANDLE object, const Sid& sid, + ACCESS_MASK access); + +} // namespace sandbox + + +#endif // SANDBOX_SRC_ACL_H_ |