diff options
author | Robert Collins <rbtcollins@hotmail.com> | 2002-03-05 15:58:24 +0300 |
---|---|---|
committer | Robert Collins <rbtcollins@hotmail.com> | 2002-03-05 15:58:24 +0300 |
commit | 241a7c5a8c8662623c04163c5132ecbf5b417b3b (patch) | |
tree | bc9947c17f541e7561485b081e19e944032b26aa /winsup/cygwin | |
parent | ad2864f4c8dd5157dad2011483c4076416a80f4c (diff) |
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.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r-- | winsup/cygwin/ChangeLog | 8 | ||||
-rwxr-xr-x | winsup/cygwin/cygserver_transport_pipes.cc | 7 | ||||
-rw-r--r-- | winsup/cygwin/include/sys/ipc.h | 7 | ||||
-rw-r--r-- | winsup/cygwin/shm.cc | 2 |
4 files changed, 20 insertions, 4 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 7a8838dce..48a40cd73 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -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. diff --git a/winsup/cygwin/cygserver_transport_pipes.cc b/winsup/cygwin/cygserver_transport_pipes.cc index 5b5a017c9..7a43d8da0 100755 --- a/winsup/cygwin/cygserver_transport_pipes.cc +++ b/winsup/cygwin/cygserver_transport_pipes.cc @@ -29,8 +29,13 @@ #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() { diff --git a/winsup/cygwin/include/sys/ipc.h b/winsup/cygwin/include/sys/ipc.h index 8ddec6d50..c718a173a 100644 --- a/winsup/cygwin/include/sys/ipc.h +++ b/winsup/cygwin/include/sys/ipc.h @@ -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); diff --git a/winsup/cygwin/shm.cc b/winsup/cygwin/shm.cc index 883c15074..0c65d7724 100644 --- a/winsup/cygwin/shm.cc +++ b/winsup/cygwin/shm.cc @@ -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); |