diff options
author | Christian Muck <christian.muck@bmw.de> | 2012-05-08 10:23:57 +0200 |
---|---|---|
committer | Christian Muck <christian.muck@bmw.de> | 2012-05-30 09:05:28 +0200 |
commit | 04c33ad7f26b44288043c22ef7d2a97224538f18 (patch) | |
tree | bd89d394914f52c5ef024af318d8460f7959f871 | |
parent | d3245439f6939320f6df53cd1f6094171b0981b7 (diff) | |
download | DLT-daemon-04c33ad7f26b44288043c22ef7d2a97224538f18.tar.gz |
[GDLT-3] Fixed missing semaphore around dlt_buffer_push3
Signed-off-by: Christian Muck <christian.muck@bmw.de>
-rw-r--r-- | src/daemon/dlt-daemon.c | 2 | ||||
-rw-r--r-- | src/daemon/dlt_daemon_common.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c index 476f442..be0eeb2 100644 --- a/src/daemon/dlt-daemon.c +++ b/src/daemon/dlt-daemon.c @@ -1855,6 +1855,7 @@ int dlt_daemon_process_user_message_log(DltDaemon *daemon, DltDaemonLocal *daemo /* Message was not sent to client, so store it in client ringbuffer */ if (sent==0) { + DLT_DAEMON_SEM_LOCK(); if (dlt_buffer_push3(&(daemon->client_ringbuffer), daemon_local->msg.headerbuffer+sizeof(DltStorageHeader),daemon_local->msg.headersize-sizeof(DltStorageHeader), daemon_local->msg.databuffer,daemon_local->msg.datasize, @@ -1863,6 +1864,7 @@ int dlt_daemon_process_user_message_log(DltDaemon *daemon, DltDaemonLocal *daemo { dlt_log(LOG_ERR,"Storage of message in history buffer failed! Message discarded.\n"); } + DLT_DAEMON_SEM_FREE(); } } diff --git a/src/daemon/dlt_daemon_common.c b/src/daemon/dlt_daemon_common.c index 9a2cbea..66e2b20 100644 --- a/src/daemon/dlt_daemon_common.c +++ b/src/daemon/dlt_daemon_common.c @@ -2221,6 +2221,7 @@ void dlt_daemon_control_send_control_message( int sock, DltDaemon *daemon, DltMe } else { + DLT_DAEMON_SEM_LOCK(); /* Store message in history buffer */ if (dlt_buffer_push3(&(daemon->client_ringbuffer), msg->headerbuffer+sizeof(DltStorageHeader),msg->headersize-sizeof(DltStorageHeader), @@ -2228,9 +2229,11 @@ void dlt_daemon_control_send_control_message( int sock, DltDaemon *daemon, DltMe 0, 0 )<0) { + DLT_DAEMON_SEM_FREE(); dlt_log(LOG_ERR,"Storage of message in history buffer failed! Message discarded.\n"); return; } + DLT_DAEMON_SEM_FREE(); } } |