From c42fc7e5990b8a3025523c2a2835bb28ecc88cac Mon Sep 17 00:00:00 2001 From: Yusuke Sato Date: Mon, 29 Feb 2016 15:26:00 +0100 Subject: 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 Change-Id: Ie56f2fb73aeacb835180468e57c9338d2ffdb072 --- src/lib/dlt_user.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') 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 */ } -- cgit v1.2.1