summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/cygheap.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2003-12-01 15:03:43 +0000
committerCorinna Vinschen <corinna@vinschen.de>2003-12-01 15:03:43 +0000
commit6c2b7846124572ffed3ce4fea074cc89e732651c (patch)
tree864e724e3480a3f4662f895e5874de95d9beed9c /winsup/cygwin/cygheap.cc
parent4febe95f89e491c20503330fbad530d53d7ea4fa (diff)
downloadcygnal-6c2b7846124572ffed3ce4fea074cc89e732651c.tar.gz
cygnal-6c2b7846124572ffed3ce4fea074cc89e732651c.tar.bz2
cygnal-6c2b7846124572ffed3ce4fea074cc89e732651c.zip
* cygheap.cc (cygheap_init): Set cygheap->shared_prefix.
* cygheap.h (struct init_cygheap): Add shared_prefix. * shared.cc (shared_name): Use cygheap->shared_prefix.
Diffstat (limited to 'winsup/cygwin/cygheap.cc')
-rw-r--r--winsup/cygwin/cygheap.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/winsup/cygwin/cygheap.cc b/winsup/cygwin/cygheap.cc
index ede408695..6859e4335 100644
--- a/winsup/cygwin/cygheap.cc
+++ b/winsup/cygwin/cygheap.cc
@@ -206,6 +206,12 @@ cygheap_init ()
cygheap->fdtab.init ();
if (!cygheap->sigs)
sigalloc ();
+ if (!cygheap->shared_prefix)
+ cygheap->shared_prefix = cstrdup (
+ wincap.has_terminal_services ()
+ && (set_process_privilege (SE_CREATE_GLOBAL_NAME, true) >= 0
+ || GetLastError () == ERROR_NO_SUCH_PRIVILEGE)
+ ? "Global\\" : "");
}
/* Copyright (C) 1997, 2000 DJ Delorie */