diff --git a/lib/src/common/logger_file.cc b/lib/src/common/logger_file.cc
index f7532fdd1d49dbaeae7107108ed30c2453b6125a..25155da085ddc663c17c28f15455dc34d11d9382 100644
--- a/lib/src/common/logger_file.cc
+++ b/lib/src/common/logger_file.cc
@@ -54,7 +54,7 @@ void logger_file::init(std::string file, int max_length_) {
   pthread_mutex_init(&mutex, NULL); 
   pthread_cond_init(&not_empty, NULL);
   pthread_cond_init(&not_full, NULL);
-  max_length = max_length_*1024;
+  max_length = (int64_t)max_length_*1024;
   name_idx = 0;
   filename = file;
   logfile = fopen(filename.c_str(), "w");
diff --git a/lib/src/phy/utils/ringbuffer.c b/lib/src/phy/utils/ringbuffer.c
index d5f99fd879006d436742be6e70b452fe686905c4..8f0c3edf23ef71f8d788d99ab677a5951b16bcaa 100644
--- a/lib/src/phy/utils/ringbuffer.c
+++ b/lib/src/phy/utils/ringbuffer.c
@@ -54,6 +54,7 @@ int srslte_ringbuffer_write(srslte_ringbuffer_t *q, void *p, int nof_bytes)
   int w_bytes = nof_bytes;
   pthread_mutex_lock(&q->mutex);
   if (!q->active) {
+    pthread_mutex_unlock(&q->mutex);
     return 0;
   }
   if (q->count + w_bytes > q->capacity) {
@@ -85,6 +86,7 @@ int srslte_ringbuffer_read(srslte_ringbuffer_t *q, void *p, int nof_bytes)
     pthread_cond_wait(&q->cvar, &q->mutex);
   }
   if (!q->active) {
+    pthread_mutex_unlock(&q->mutex);
     return 0;
   }
   if (nof_bytes + q->rpm > q->capacity) {
diff --git a/lib/src/upper/rlc_am.cc b/lib/src/upper/rlc_am.cc
index 2c8b1fbfc1662c5733f70031e2418ffd1ccd8f21..e4a6242fa9d0a8c624cc8d424ab6de2713ca4f1e 100644
--- a/lib/src/upper/rlc_am.cc
+++ b/lib/src/upper/rlc_am.cc
@@ -1085,11 +1085,11 @@ void rlc_am::handle_control_pdu(uint8_t *payload, uint32_t nof_bytes)
         it = tx_window.find(i);
         if (it != tx_window.end()) {
           if(update_vt_a) {
-            tx_window.erase(it);
             if(it->second.buf) {
               pool->deallocate(it->second.buf);
               it->second.buf = 0;
             }
+            tx_window.erase(it);
             vt_a = (vt_a + 1)%MOD;
             vt_ms = (vt_ms + 1)%MOD;
           }
diff --git a/lib/test/upper/rlc_am_stress_test.cc b/lib/test/upper/rlc_am_stress_test.cc
index d6fb0882d5fe2515d89789564de30aac6105d7ac..548feb8183a57a574f55bd6fc926767867d17039 100644
--- a/lib/test/upper/rlc_am_stress_test.cc
+++ b/lib/test/upper/rlc_am_stress_test.cc
@@ -47,6 +47,7 @@ public:
     rlc2 = rlc2_;
     fail_rate = fail_rate_;
     run_enable = true;
+    running = false;
   }
 
   void stop()
diff --git a/srsue/hdr/upper/rrc.h b/srsue/hdr/upper/rrc.h
index 27764bd0240f4b1ace2cfd3a465e78bc4c49780c..4ac2dfa2f4ec97d91165c35b7302e53629cd922e 100644
--- a/srsue/hdr/upper/rrc.h
+++ b/srsue/hdr/upper/rrc.h
@@ -76,17 +76,22 @@ class cell_t
     return false;
   }
   cell_t() {
-    this->has_valid_sib1 = false;
-    this->has_valid_sib2 = false;
-    this->has_valid_sib3 = false;
+    srslte_cell_t tmp = {};
+    cell_t(tmp, 0, 0);
   }
   cell_t(srslte_cell_t phy_cell, uint32_t earfcn, float rsrp) {
     this->has_valid_sib1 = false;
     this->has_valid_sib2 = false;
     this->has_valid_sib3 = false;
+    this->has_valid_sib13 = false;
     this->phy_cell = phy_cell;
     this->rsrp = rsrp;
     this->earfcn = earfcn;
+    in_sync = false;
+    bzero(&sib1, sizeof(sib1));
+    bzero(&sib2, sizeof(sib2));
+    bzero(&sib3, sizeof(sib3));
+    bzero(&sib13, sizeof(sib13));
   }
 
   uint32_t earfcn;
@@ -114,6 +119,7 @@ class rrc
 {
 public:
   rrc();
+  ~rrc();
 
   void init(phy_interface_rrc *phy_,
             mac_interface_rrc *mac_,
diff --git a/srsue/src/upper/rrc.cc b/srsue/src/upper/rrc.cc
index 24ccbb4c0c1cf340a5418fe1b474a112f1775fd0..ad5cf29b245cc4d4f38d116721d0ea83cedf0ee5 100644
--- a/srsue/src/upper/rrc.cc
+++ b/srsue/src/upper/rrc.cc
@@ -49,12 +49,20 @@ rrc::rrc()
   :state(RRC_STATE_IDLE)
   ,drb_up(false)
   ,sysinfo_index(0)
+  ,serving_cell(NULL)
 {
   n310_cnt       = 0;
   n311_cnt       = 0;
   serving_cell = new cell_t();
 }
 
+rrc::~rrc()
+{
+  if (serving_cell) {
+    delete(serving_cell);
+  }
+}
+
 static void liblte_rrc_handler(void *ctx, char *str) {
   rrc *r = (rrc *) ctx;
   r->liblte_rrc_log(str);