OSDN Git Service

2002-03-05 Robert Collins <rbtcollins@hotmail.com>
authorrbcollins <rbcollins>
Tue, 5 Mar 2002 12:58:21 +0000 (12:58 +0000)
committerrbcollins <rbcollins>
Tue, 5 Mar 2002 12:58:21 +0000 (12:58 +0000)
        * cygserver_transport_pipes.cc (transport_layer_pipes::transport_layer_pipes):
        Always init - until static members work correctly.
        * shm.cc (shmget): Initialize the security descriptor - thanks Corinna!
        * include/sys/ipc.h: Make the ipc control constants partitioned off from the sem
        control constants.

winsup/cygserver/transport_pipes.cc
winsup/cygwin/ChangeLog
winsup/cygwin/cygserver_transport_pipes.cc
winsup/cygwin/include/sys/ipc.h
winsup/cygwin/shm.cc

index 5b5a017..7a43d8d 100644 (file)
 #define debug_printf if (DEBUG) printf
 #endif
 
+//SECURITY_DESCRIPTOR transport_layer_pipes::sd;
+//SECURITY_ATTRIBUTES transport_layer_pipes::sec_none_nih, transport_layer_pipes::sec_all_nih;
+//bool transport_layer_pipes::inited = false;
+
 transport_layer_pipes::transport_layer_pipes (HANDLE new_pipe)
 {
+  inited = false; //FIXME: allow inited, sd, all_nih_.. to be static members
   pipe = new_pipe;
   if (inited != true)
     init_security();
@@ -38,13 +43,13 @@ transport_layer_pipes::transport_layer_pipes (HANDLE new_pipe)
 
 transport_layer_pipes::transport_layer_pipes () 
 {
+  inited = false;
   pipe = NULL;
   strcpy(pipe_name, "\\\\.\\pipe\\cygwin_lpc");
   if (inited != true)
     init_security();
 }
 
-
 void
 transport_layer_pipes::init_security()
 {
index 7a8838d..48a40cd 100644 (file)
@@ -1,3 +1,11 @@
+2002-03-05  Robert Collins  <rbtcollins@hotmail.com>
+
+       * cygserver_transport_pipes.cc (transport_layer_pipes::transport_layer_pipes): 
+       Always init - until static members work correctly.
+       * shm.cc (shmget): Initialize the security descriptor - thanks Corinna!
+       * include/sys/ipc.h: Make the ipc control constants partitioned off from the sem 
+       control constants.
+
 2002-03-04  Christian Lestrade  <christian.lestrade@free.fr>
 
        * include/sys/termios.h: Define _POSIX_VDISABLE.  Define CCEQ macro.
index 5b5a017..7a43d8d 100755 (executable)
 #define debug_printf if (DEBUG) printf
 #endif
 
+//SECURITY_DESCRIPTOR transport_layer_pipes::sd;
+//SECURITY_ATTRIBUTES transport_layer_pipes::sec_none_nih, transport_layer_pipes::sec_all_nih;
+//bool transport_layer_pipes::inited = false;
+
 transport_layer_pipes::transport_layer_pipes (HANDLE new_pipe)
 {
+  inited = false; //FIXME: allow inited, sd, all_nih_.. to be static members
   pipe = new_pipe;
   if (inited != true)
     init_security();
@@ -38,13 +43,13 @@ transport_layer_pipes::transport_layer_pipes (HANDLE new_pipe)
 
 transport_layer_pipes::transport_layer_pipes () 
 {
+  inited = false;
   pipe = NULL;
   strcpy(pipe_name, "\\\\.\\pipe\\cygwin_lpc");
   if (inited != true)
     init_security();
 }
 
-
 void
 transport_layer_pipes::init_security()
 {
index 8ddec6d..c718a17 100644 (file)
@@ -39,9 +39,10 @@ struct ipc_perm {
 /* this is a value that will _never_ be a valid key from ftok */
 #define IPC_PRIVATE -2
 
-#define IPC_RMID 0x0003
-#define IPC_SET  0x0002
-#define IPC_STAT 0x0001
+/* ctl commands 1000-1fff is ipc reserved */
+#define IPC_RMID 0x1003
+#define IPC_SET  0x1002
+#define IPC_STAT 0x1001
 
 key_t ftok(const char *, int);
 
index 883c150..0c65d77 100644 (file)
@@ -460,6 +460,8 @@ shmget (key_t key, size_t size, int shmflg)
   char sd_buf[4096];
   PSECURITY_DESCRIPTOR psd = (PSECURITY_DESCRIPTOR) sd_buf;
   /* create a sd for our open requests based on shmflag & 0x01ff */
+  InitializeSecurityDescriptor (psd,
+                                    SECURITY_DESCRIPTOR_REVISION);
   psd = alloc_sd (getuid (), getgid (), cygheap->user.logsrv (),
                  shmflg & 0x01ff, psd, &sd_size);