Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorRobert Collins <rbtcollins@hotmail.com>2002-03-05 15:58:24 +0300
committerRobert Collins <rbtcollins@hotmail.com>2002-03-05 15:58:24 +0300
commit241a7c5a8c8662623c04163c5132ecbf5b417b3b (patch)
treebc9947c17f541e7561485b081e19e944032b26aa /winsup
parentad2864f4c8dd5157dad2011483c4076416a80f4c (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')
-rw-r--r--winsup/cygserver/transport_pipes.cc7
-rw-r--r--winsup/cygwin/ChangeLog8
-rwxr-xr-xwinsup/cygwin/cygserver_transport_pipes.cc7
-rw-r--r--winsup/cygwin/include/sys/ipc.h7
-rw-r--r--winsup/cygwin/shm.cc2
5 files changed, 26 insertions, 5 deletions
diff --git a/winsup/cygserver/transport_pipes.cc b/winsup/cygserver/transport_pipes.cc
index 5b5a017c9..7a43d8da0 100644
--- a/winsup/cygserver/transport_pipes.cc
+++ b/winsup/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/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);