diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2006-10-21 11:05:32 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2006-10-21 11:05:32 +0000 |
commit | 1b4153db7433184f220941a0954a521bbb01ec04 (patch) | |
tree | 6c598d3f46537e016212df4a546f48bced54bdc3 /winsup/cygwin/fhandler.cc | |
parent | 9367c0dcff74e0462e4f5d4fd9886cc1a19b04c5 (diff) | |
download | cygnal-1b4153db7433184f220941a0954a521bbb01ec04.tar.gz cygnal-1b4153db7433184f220941a0954a521bbb01ec04.tar.bz2 cygnal-1b4153db7433184f220941a0954a521bbb01ec04.zip |
* fhandler.cc (fhandler_base::fhaccess): Call check_registry_access
for registry keys/values if ntsec is on.
* security.cc (check_access): New static function derived from
check_file_access, but object type agnostic.
(check_file_access): Only do file specific stuff. Call check_access.
(check_registry_access): New access check function for registry keys/
values.
* security.h (check_registry_access): Declare.
Diffstat (limited to 'winsup/cygwin/fhandler.cc')
-rw-r--r-- | winsup/cygwin/fhandler.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc index 672b434e5..2933a1712 100644 --- a/winsup/cygwin/fhandler.cc +++ b/winsup/cygwin/fhandler.cc @@ -388,6 +388,12 @@ fhandler_base::fhaccess (int flags) res = check_file_access (get_win32_name (), flags); goto done; } + else if (get_device () == FH_REGISTRY && allow_ntsec && open (O_RDONLY, 0)) + { + res = check_registry_access (get_handle (), flags); + close (); + return res; + } struct __stat64 st; if (fstat (&st)) |