2014-05-19 Corinna Vinschen <corinna@vinschen.de>

* bsd_mutex.cc (msleep_sync_array::~msleep_sync_array): New destructor
	to make Coverity happy (CID 59838).

2014-05-19  Corinna Vinschen  <corinna@vinschen.de>

	* bsd_helper.cc (ipcexit_creat_hookthread): Delete shs to make
	Coverity happy (CID 59993).
	* transport_pipes.cc (transport_layer_pipes::listen): Make listen_pipe
	and connect_pipe statics to make Coverity happy (CID 60010/60011).

2014-04-16  Corinna Vinschen  <corinna@vinschen.de>

	* cygserver-config: Use numeric id 18 instead of "system" in chown.
This commit is contained in:
Corinna Vinschen 2014-07-16 08:30:48 +00:00
parent 92f2522b66
commit 360ef6666b
5 changed files with 31 additions and 6 deletions

View File

@ -7,6 +7,22 @@
* client.cc: Throughout, fix debug output of signed byte count value. * client.cc: Throughout, fix debug output of signed byte count value.
2014-05-19 Corinna Vinschen <corinna@vinschen.de>
* bsd_mutex.cc (msleep_sync_array::~msleep_sync_array): New destructor
to make Coverity happy (CID 59838).
2014-05-19 Corinna Vinschen <corinna@vinschen.de>
* bsd_helper.cc (ipcexit_creat_hookthread): Delete shs to make
Coverity happy (CID 59993).
* transport_pipes.cc (transport_layer_pipes::listen): Make listen_pipe
and connect_pipe statics to make Coverity happy (CID 60010/60011).
2014-04-16 Corinna Vinschen <corinna@vinschen.de>
* cygserver-config: Use numeric id 18 instead of "system" in chown.
2014-04-07 Corinna Vinschen <corinna@vinschen.de> 2014-04-07 Corinna Vinschen <corinna@vinschen.de>
* process.cc (process::process): Only notice that signal_arrived is * process.cc (process::process): Only notice that signal_arrived is

View File

@ -210,6 +210,7 @@ ipcexit_creat_hookthread (struct thread *td)
HANDLE thread = CreateThread (NULL, 0, ipcexit_hookthread, shs, 0, &tid); HANDLE thread = CreateThread (NULL, 0, ipcexit_hookthread, shs, 0, &tid);
if (!thread) if (!thread)
{ {
delete shs;
log (LOG_CRIT, "failed to create thread, error = %u", GetLastError ()); log (LOG_CRIT, "failed to create thread, error = %u", GetLastError ());
return cygwin_internal (CW_GET_ERRNO_FROM_WINERROR, return cygwin_internal (CW_GET_ERRNO_FROM_WINERROR,
GetLastError (), ENOMEM); GetLastError (), ENOMEM);

View File

@ -227,6 +227,8 @@ public:
panic ("Allocating msleep records failed: %d", errno); panic ("Allocating msleep records failed: %d", errno);
} }
~msleep_sync_array () { delete a; }
HANDLE enter (void *ident) HANDLE enter (void *ident)
{ {
HANDLE evt = NULL; HANDLE evt = NULL;

View File

@ -157,7 +157,7 @@ then
exit 1 exit 1
fi fi
chmod 664 "${SYSCONFDIR}/cygserver.conf" chmod 664 "${SYSCONFDIR}/cygserver.conf"
chown system.544 "${SYSCONFDIR}/cygserver.conf" chown 18.544 "${SYSCONFDIR}/cygserver.conf"
fi fi
# On NT ask if cygserver should be installed as service # On NT ask if cygserver should be installed as service
@ -189,7 +189,7 @@ then
echo "To start it, call \`net start cygserver' or \`cygrunsrv -S cygserver'." echo "To start it, call \`net start cygserver' or \`cygrunsrv -S cygserver'."
fi fi
touch "${LOCALSTATEDIR}/log/cygserver.log" touch "${LOCALSTATEDIR}/log/cygserver.log"
chown system.544 "${LOCALSTATEDIR}/log/cygserver.log" chown 18.544 "${LOCALSTATEDIR}/log/cygserver.log"
fi fi
fi fi

View File

@ -83,6 +83,9 @@ transport_layer_pipes::~transport_layer_pipes ()
#ifndef __INSIDE_CYGWIN__ #ifndef __INSIDE_CYGWIN__
static HANDLE listen_pipe;
static HANDLE connect_pipe;
int int
transport_layer_pipes::listen () transport_layer_pipes::listen ()
{ {
@ -94,16 +97,19 @@ transport_layer_pipes::listen ()
debug ("Try to create named pipe: %ls", _pipe_name); debug ("Try to create named pipe: %ls", _pipe_name);
HANDLE listen_pipe = /* We have to create the first instance of the listening pipe here, and
we also have to create at least one instance of the client side to avoid
a race condition.
See https://cygwin.com/ml/cygwin/2012-11/threads.html#00144 */
listen_pipe =
CreateNamedPipeW (_pipe_name, CreateNamedPipeW (_pipe_name,
PIPE_ACCESS_DUPLEX | FILE_FLAG_FIRST_PIPE_INSTANCE, PIPE_ACCESS_DUPLEX | FILE_FLAG_FIRST_PIPE_INSTANCE,
PIPE_TYPE_BYTE | PIPE_WAIT, PIPE_UNLIMITED_INSTANCES, PIPE_TYPE_BYTE | PIPE_WAIT, PIPE_UNLIMITED_INSTANCES,
0, 0, 1000, &sec_all_nih); 0, 0, 1000, &sec_all_nih);
if (listen_pipe != INVALID_HANDLE_VALUE) if (listen_pipe != INVALID_HANDLE_VALUE)
{ {
HANDLE connect_pipe = connect_pipe = CreateFileW (_pipe_name, GENERIC_READ | GENERIC_WRITE, 0,
CreateFileW (_pipe_name, GENERIC_READ | GENERIC_WRITE, 0, &sec_all_nih, &sec_all_nih, OPEN_EXISTING, 0, NULL);
OPEN_EXISTING, 0, NULL);
if (connect_pipe == INVALID_HANDLE_VALUE) if (connect_pipe == INVALID_HANDLE_VALUE)
{ {
CloseHandle (listen_pipe); CloseHandle (listen_pipe);