cygwin_internal(CW_CHECK_NTSEC, filename) patch

Jason Tishler jason@tishler.net
Wed Apr 2 20:19:00 GMT 2003


On Wed, Apr 02, 2003 at 01:33:04PM -0500, Christopher Faylor wrote:
> If you just do a path_conv on a path, you can check the 'has_acls ()'
> flag.  I think this just devolves to "allow_ntsec &&
> win32_path.has_acls ()".

See attached for take 2.

Thanks,
Jason

-- 
PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers
Fingerprint: 7A73 1405 7F2B E669 C19D  8784 1AFD E4CC ECF4 8EF6
-------------- next part --------------
Index: external.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/external.cc,v
retrieving revision 1.50
diff -u -p -u -p -r1.50 external.cc
--- external.cc	28 Mar 2003 14:21:40 -0000	1.50
+++ external.cc	2 Apr 2003 19:15:15 -0000
@@ -121,6 +121,13 @@ get_cygdrive_prefixes (char *user, char 
   return res;
 }
 
+static DWORD
+check_ntsec (const char *filename)
+{
+  path_conv pc (filename);
+  return allow_ntsec && pc.has_acls ();
+}
+
 extern "C" unsigned long
 cygwin_internal (cygwin_getinfo_types t, ...)
 {
@@ -246,6 +253,11 @@ cygwin_internal (cygwin_getinfo_types t,
 	  pid_t pid = va_arg (arg, pid_t);
 	  pinfo p (pid);
 	  return (DWORD) p->cmdline (n);
+	}
+      case CW_CHECK_NTSEC:
+	{
+	  char *filename = va_arg (arg, char *);
+	  return check_ntsec (filename);
 	}
       default:
 	return (DWORD) -1;
Index: include/cygwin/version.h
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/include/cygwin/version.h,v
retrieving revision 1.112
diff -u -p -u -p -r1.112 version.h
--- include/cygwin/version.h	19 Mar 2003 20:13:57 -0000	1.112
+++ include/cygwin/version.h	2 Apr 2003 19:15:15 -0000
@@ -197,12 +197,13 @@ details. */
 		  fgetpos64 fopen64 freopen64 fseeko64 fsetpos64 ftello64
 		  _open64 _lseek64 _fstat64 _stat64 mknod32
        80: Export pthread_rwlock stuff
+       81: CW_CHECK_NTSEC addition to external.cc
      */
 
      /* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
 
 #define CYGWIN_VERSION_API_MAJOR 0
-#define CYGWIN_VERSION_API_MINOR 80
+#define CYGWIN_VERSION_API_MINOR 81
 
      /* There is also a compatibity version number associated with the
 	shared memory regions.  It is incremented when incompatible
Index: include/sys/cygwin.h
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/include/sys/cygwin.h,v
retrieving revision 1.42
diff -u -p -u -p -r1.42 cygwin.h
--- include/sys/cygwin.h	28 Mar 2003 14:21:40 -0000	1.42
+++ include/sys/cygwin.h	2 Apr 2003 19:15:15 -0000
@@ -71,7 +71,8 @@ typedef enum
     CW_STRACE_ACTIVE,
     CW_CYGWIN_PID_TO_WINPID,
     CW_EXTRACT_DOMAIN_AND_USER,
-    CW_CMDLINE
+    CW_CMDLINE,
+    CW_CHECK_NTSEC
   } cygwin_getinfo_types;
 
 #define CW_NEXTPID	0x80000000	/* or with pid to get next one */
-------------- next part --------------
2003-04-02  Jason Tishler <jason@tishler.net>
	    Christopher Faylor  <cgf@redhat.com>

	* external.cc (check_ntsec): New function.
	(cygwin_internal): Add CW_CHECK_NTSEC handling to call check_ntsec()
	from applications.
	* include/cygwin/version.h: Bump API minor number.
	* include/sys/cygwin.h (cygwin_getinfo_types): Add CW_CHECK_NTSEC.


More information about the Cygwin-patches mailing list