From 182e493a5668b66d3017d92130b5fb31d325796d Mon Sep 17 00:00:00 2001
From: dimitri staessens <dimitri.staessens@intec.ugent.be>
Date: Sat, 14 May 2016 11:35:55 +0200
Subject: lib: shm_ap_rbuff: removed bad memory allocation

moved a malloc so there is no malloc/free when there is no data to be
read from the shm_ap_rbuff.
---
 src/lib/shm_ap_rbuff.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

(limited to 'src')

diff --git a/src/lib/shm_ap_rbuff.c b/src/lib/shm_ap_rbuff.c
index 6c977cbb..6c04ccc5 100644
--- a/src/lib/shm_ap_rbuff.c
+++ b/src/lib/shm_ap_rbuff.c
@@ -245,18 +245,17 @@ struct rb_entry * shm_ap_rbuff_read(struct shm_ap_rbuff * rb)
         if (rb == NULL)
                 return NULL;
 
-        e = malloc(sizeof(*e));
-        if (e == NULL)
-                return NULL;
-
         pthread_mutex_lock(rb->shm_mutex);
 
         if (shm_rbuff_used(rb) == 0) {
                 pthread_mutex_unlock(rb->shm_mutex);
-                free(e);
                 return NULL;
         }
 
+        e = malloc(sizeof(*e));
+        if (e == NULL)
+                return NULL;
+
         *e = *(rb->shm_base + *rb->ptr_tail);
 
         *rb->ptr_tail = (*rb->ptr_tail + 1) & (SHM_RBUFF_SIZE -1);
-- 
cgit v1.2.3