summaryrefslogtreecommitdiff
path: root/src/daemon/dlt-daemon.c
diff options
context:
space:
mode:
authorSimon Brandner <simon.brandner@partner.bmw.de>2013-01-28 12:14:06 +0100
committerAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2013-07-19 16:54:38 +0200
commite2943ff4cf2d7d2da4000e2ca35663a7c83675d7 (patch)
tree1a710a70a5190dacdb26c02da6cb570271f5d506 /src/daemon/dlt-daemon.c
parent733a1111254882aec6ebc9c90bb690aaee3f2773 (diff)
downloadDLT-daemon-e2943ff4cf2d7d2da4000e2ca35663a7c83675d7.tar.gz
Semaphores and Pointer passing insteasd by value and otehr coverity issue fixes
Signed-off-by: Alexander Wenzel <Alexander.AW.Wenzel@bmw.de>
Diffstat (limited to 'src/daemon/dlt-daemon.c')
-rw-r--r--src/daemon/dlt-daemon.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c
index ea9e43d..20cba66 100644
--- a/src/daemon/dlt-daemon.c
+++ b/src/daemon/dlt-daemon.c
@@ -1106,10 +1106,13 @@ void dlt_daemon_daemonize(int verbose)
/* Open standard descriptors stdin, stdout, stderr */
i=open("/dev/null",O_RDWR); /* open stdin */
- if(dup(i) < 0)
- dlt_log(LOG_ERR, "Failed to direct stdout to /dev/null.\n");/* stdout */
- if(dup(i) < 0)
- dlt_log(LOG_ERR, "Failed to direct stderr to /dev/null.\n"); /* stderr */
+ if (-1 < i)
+ {
+ if(dup(i) < 0)
+ dlt_log(LOG_ERR, "Failed to direct stdout to /dev/null.\n");/* stdout */
+ if(dup(i) < 0)
+ dlt_log(LOG_ERR, "Failed to direct stderr to /dev/null.\n"); /* stderr */
+ }
/* Set umask */
umask(DLT_DAEMON_UMASK);
@@ -1225,6 +1228,7 @@ int dlt_daemon_process_client_messages(DltDaemon *daemon, DltDaemonLocal *daemon
if (dlt_receiver_receive_socket(&(daemon_local->receiverSock))<=0)
{
close(daemon_local->receiverSock.fd);
+ daemon_local->receiverSock.fd = 0;
FD_CLR(daemon_local->receiverSock.fd, &(daemon_local->master));
if (daemon_local->client_connections)
@@ -1252,7 +1256,7 @@ int dlt_daemon_process_client_messages(DltDaemon *daemon, DltDaemonLocal *daemon
while (dlt_message_read(&(daemon_local->msg),(uint8_t*)daemon_local->receiverSock.buf,daemon_local->receiverSock.bytesRcvd,daemon_local->flags.nflag,daemon_local->flags.vflag)==0)
{
/* Check for control message */
- if (DLT_MSG_IS_CONTROL_REQUEST(&(daemon_local->msg)))
+ if ( 0 != daemon_local->receiverSock.fd && DLT_MSG_IS_CONTROL_REQUEST(&(daemon_local->msg)) )
{
dlt_daemon_control_process_control(daemon_local->receiverSock.fd, daemon, &(daemon_local->msg), daemon_local->flags.vflag);
}