diff options
author | Simon Brandner <simon.brandner@partner.bmw.de> | 2013-01-28 12:14:06 +0100 |
---|---|---|
committer | Alexander Wenzel <Alexander.AW.Wenzel@bmw.de> | 2013-07-19 16:54:38 +0200 |
commit | e2943ff4cf2d7d2da4000e2ca35663a7c83675d7 (patch) | |
tree | 1a710a70a5190dacdb26c02da6cb570271f5d506 /src/daemon/dlt-daemon.c | |
parent | 733a1111254882aec6ebc9c90bb690aaee3f2773 (diff) | |
download | DLT-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.c | 14 |
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); } |