Mask out X_OK to avoid problem on Vista. X_OK was just ignored by access()
authorTor Lillqvist <tml@novell.com>
Thu, 29 May 2008 23:05:35 +0000 (23:05 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Thu, 29 May 2008 23:05:35 +0000 (23:05 +0000)
2008-05-30  Tor Lillqvist  <tml@novell.com>

* glib/gstdio.c (g_access) [Win32]: Mask out X_OK to avoid problem
on Vista. X_OK was just ignored by access() in earlier Microsoft C
libraries. (Which is fine as executability has little meaning on
Windows.) The one on Vista returns an error if X_OK is passed.

svn path=/trunk/; revision=6961

ChangeLog
glib/gstdio.c

index f6c9cee..f99fdbc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-05-30  Tor Lillqvist  <tml@novell.com>
+
+       * glib/gstdio.c (g_access) [Win32]: Mask out X_OK to avoid problem
+       on Vista. X_OK was just ignored by access() in earlier Microsoft C
+       libraries. (Which is fine as executability has little meaning on
+       Windows.) The one on Vista returns an error if X_OK is passed.
+
 2008-05-29  Tor Lillqvist  <tml@novell.com>
 
        * glib/gstdio.h
index 09167a7..285bfe9 100644 (file)
@@ -85,7 +85,7 @@ g_access (const gchar *filename,
       return -1;
     }
 
-  retval = _waccess (wfilename, mode);
+  retval = _waccess (wfilename, mode & ~X_OK);
   save_errno = errno;
 
   g_free (wfilename);