This is the mail archive of the
cygwin-patches
mailing list for the Cygwin project.
[PATCH] Cygwin: FIFO: use FILE_PIPE_REJECT_REMOTE_CLIENTS flag
- From: Ken Brown <kbrown at cornell dot edu>
- To: "cygwin-patches at cygwin dot com" <cygwin-patches at cygwin dot com>
- Date: Sat, 21 Dec 2019 23:01:46 +0000
- Subject: [PATCH] Cygwin: FIFO: use FILE_PIPE_REJECT_REMOTE_CLIENTS flag
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cornell.edu; dmarc=pass action=none header.from=cornell.edu; dkim=pass header.d=cornell.edu; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/w5Fo+WNX9FYqga8XyBqXFIpMCkITWRI3lf2bhPCBYE=; b=FOTUb9N+lbeNwYaKQV10V/SGKjoh/X0PlMffSytC1UdlnG3/5EHiqL96z2MicSUzWeCGDqMDHIi7RoWnnJwhOOIMdnSRt7UG0w25ZR4Jkt8rZeUNSYcbhTTuMhjOc09EE80yFAL4941bcOfalPqaZCncFoRu7X49IfB9qedbqek//nP7WDetRiytwvi0reJn/bMozkL13fAC5FwABpdUC3ZGlH2/dWR3rGtlEQ7PW3T8RNmNymFVQxhkvBpNcmflqpuP+Vk0/CCttTe3gyms+cQOSybjVt2mksgzIHjQYCwAJjydu4okgjU6Ku5uNizOQKpLXUf5oSj/I3BCc8Rr3g==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IrUdx9UFz6hyZ++CANwEltKZGHb5ZADto/WFMCSc68JstSNjowsY1SsJtS5ypvDJD3/o+CALMAW7kbv0ySBu/js5l1qUYnwOfNaYvKuKgh9beE1ee6yh8vFm3PiBtSwUHLD/pCNOWnja6IASuOUhE+0EKwAw3Q6rGOLZ+pxzctimnCdmRwq4oLKVCQ5Ounzsq3dFyRJl2ZR4Di6jYdbGiLhyV+v5Q0Wf3spGhs8utOqa3V6D4ps0zD8WCbPvx9ddZCwDVj+8d7brNXyQ7i/jnTeMRnAjtgbzIKfssRQLxjXlfUm+JAU363bJQqmsePwvR2yF0rPoMDpm5E0MWIZAKA==
Add that flag to the pipe type argument when creating the Windows
named pipe. And add a definition of that flag to ntdll.h (copied from
/usr/include/w32api/ddk/ntifs.h).
---
winsup/cygwin/fhandler_fifo.cc | 3 ++-
winsup/cygwin/ntdll.h | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/winsup/cygwin/fhandler_fifo.cc b/winsup/cygwin/fhandler_fifo.cc
index 92797ce60..fd8223000 100644
--- a/winsup/cygwin/fhandler_fifo.cc
+++ b/winsup/cygwin/fhandler_fifo.cc
@@ -184,7 +184,8 @@ fhandler_fifo::create_pipe_instance (bool first)
timeout.QuadPart = -500000;
status = NtCreateNamedPipeFile (&ph, access, &attr, &io, sharing,
first ? FILE_CREATE : FILE_OPEN, 0,
- FILE_PIPE_MESSAGE_TYPE,
+ FILE_PIPE_MESSAGE_TYPE
+ | FILE_PIPE_REJECT_REMOTE_CLIENTS,
FILE_PIPE_MESSAGE_MODE,
nonblocking, max_instances,
DEFAULT_PIPEBUFSIZE, DEFAULT_PIPEBUFSIZE,
diff --git a/winsup/cygwin/ntdll.h b/winsup/cygwin/ntdll.h
index e19cc8ab5..1c07d0255 100644
--- a/winsup/cygwin/ntdll.h
+++ b/winsup/cygwin/ntdll.h
@@ -557,7 +557,8 @@ enum
enum
{
FILE_PIPE_BYTE_STREAM_TYPE = 0,
- FILE_PIPE_MESSAGE_TYPE = 1
+ FILE_PIPE_MESSAGE_TYPE = 1,
+ FILE_PIPE_REJECT_REMOTE_CLIENTS = 2
};
typedef struct _FILE_PIPE_PEEK_BUFFER {
--
2.21.0