]> sourceware.org Git - newlib-cygwin.git/commitdiff
* security.cc (check_registry_access): Handle missing
authorChristian Franke <franke@computer.org>
Tue, 10 May 2011 17:19:37 +0000 (17:19 +0000)
committerChristian Franke <franke@computer.org>
Tue, 10 May 2011 17:19:37 +0000 (17:19 +0000)
security descriptor of HKEY_PERFORMANCE_DATA.

winsup/cygwin/ChangeLog
winsup/cygwin/security.cc

index b846136949a9c6dcff4bc17c7ee618eebb43718c..9ce6707189f59cdef99ca2924ba5baa4d46e0c60 100644 (file)
@@ -1,3 +1,8 @@
+2011-05-10  Christian Franke  <franke@computer.org>
+
+       * security.cc (check_registry_access): Handle missing
+       security descriptor of HKEY_PERFORMANCE_DATA.
+
 2011-05-10  Corinna Vinschen  <corinna@vinschen.de>
 
        * lc_msg.h: Regenerate.
index a52fc26acf10aab9f92bfc3f6f56cedc193e49de..430a65fbc7b868c548137b8c75226f2e35d25a6f 100644 (file)
@@ -1085,8 +1085,13 @@ check_registry_access (HANDLE hdl, int flags, bool effective)
     desired |= KEY_SET_VALUE;
   if (flags & X_OK)
     desired |= KEY_QUERY_VALUE;
-  if (!get_reg_sd (hdl, sd))
+
+  if ((HKEY) hdl == HKEY_PERFORMANCE_DATA)
+    /* RegGetKeySecurity() always fails with ERROR_INVALID_HANDLE.  */
+    ret = 0;
+  else if (!get_reg_sd (hdl, sd))
     ret = check_access (sd, reg_mapping, desired, flags, effective);
+
   /* As long as we can't write the registry... */
   if (flags & W_OK)
     {
This page took 0.036781 seconds and 5 git commands to generate.