diff options
author | Yusuke Sato <yusuke-sato@apn.alpine.co.jp> | 2016-02-29 15:26:00 +0100 |
---|---|---|
committer | Alexander Wenzel <Alexander.AW.Wenzel@bmw.de> | 2016-09-23 15:37:24 +0200 |
commit | c42fc7e5990b8a3025523c2a2835bb28ecc88cac (patch) | |
tree | 6c199d21d25dab2db0f3870cfc4c20f45d5d7918 | |
parent | 0af9644dcc8681dea32e868c43bca23697e96c9b (diff) | |
download | DLT-daemon-c42fc7e5990b8a3025523c2a2835bb28ecc88cac.tar.gz |
Fix: Segfault in checking buffer usage
Segfault is caused by dlt_user_check_buffer() if this function is called during increasing the user buffer.
To avoid this issue, semaphore has to be added.
Signed-off-by: Yusuke Sato <yusuke-sato@apn.alpine.co.jp>
Change-Id: Ie56f2fb73aeacb835180468e57c9338d2ffdb072
-rw-r--r-- | src/lib/dlt_user.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/dlt_user.c b/src/lib/dlt_user.c index ca7a56d..6cb4a7d 100644 --- a/src/lib/dlt_user.c +++ b/src/lib/dlt_user.c @@ -4400,6 +4400,8 @@ DltReturnValue dlt_user_check_buffer(int *total_size, int *used_size) if(total_size == NULL || used_size == NULL) return DLT_RETURN_WRONG_PARAMETER; + DLT_SEM_LOCK(); + #ifdef DLT_SHM_ENABLE *total_size = dlt_shm_get_total_size(&(dlt_user.dlt_shm)); *used_size = dlt_shm_get_used_size(&(dlt_user.dlt_shm)); @@ -4408,6 +4410,7 @@ DltReturnValue dlt_user_check_buffer(int *total_size, int *used_size) *used_size = dlt_buffer_get_used_size(&(dlt_user.startup_buffer)); #endif + DLT_SEM_FREE(); return DLT_RETURN_OK; /* ok */ } |