Closing CBOR containers on error situations before returning.
diff --git a/cmd/log_mgmt/src/log_mgmt.c b/cmd/log_mgmt/src/log_mgmt.c
index 9af2548..dc7731a 100644
--- a/cmd/log_mgmt/src/log_mgmt.c
+++ b/cmd/log_mgmt/src/log_mgmt.c
@@ -89,6 +89,7 @@
         err |= cbor_encode_text_stringz(&rsp, "str");
         break;
     default:
+        cbor_encoder_close_container(&rsp, &str_encoder);
         return MGMT_ERR_ECORRUPT;
     }
 
@@ -213,6 +214,7 @@
     rc = log_mgmt_impl_foreach_entry(log->name, &filter,
                                      log_mgmt_cb_encode, &ctxt);
     if (rc != 0 && rc != MGMT_ERR_EMSGSIZE) {
+        cbor_encoder_close_container(enc, &entries);
         return rc;
     }
 
@@ -242,6 +244,7 @@
 
     rc = log_encode_entries(log, &logs, timestamp, index);
     if (rc != 0) {
+        cbor_encoder_close_container(ctxt, &logs);
         return rc;
     }
 
@@ -327,6 +330,7 @@
                 break;
             }
         } else if (rc != 0) {
+            cbor_encoder_close_container(&ctxt->encoder, &logs);
             return rc;
         }
 
@@ -335,6 +339,7 @@
             if (name_len == 0 || strcmp(name, log.name) == 0) {
                 rc = log_encode(&log, &logs, timestamp, index);
                 if (rc != 0) {
+                    cbor_encoder_close_container(&ctxt->encoder, &logs);
                     return rc;
                 }
 
@@ -384,6 +389,7 @@
             break;
         }
         if (rc != 0) {
+            cbor_encoder_close_container(&ctxt->encoder, &modules);
             return rc;
         }
 
@@ -427,6 +433,7 @@
             break;
         }
         if (rc != 0) {
+            cbor_encoder_close_container(&ctxt->encoder, &log_list);
             return rc;
         }
 
@@ -469,6 +476,7 @@
             break;
         }
         if (rc != 0) {
+            cbor_encoder_close_container(&ctxt->encoder, &level_map);
             return rc;
         }
 
diff --git a/cmd/os_mgmt/src/os_mgmt.c b/cmd/os_mgmt/src/os_mgmt.c
index 9a0db2a..03d3dab 100644
--- a/cmd/os_mgmt/src/os_mgmt.c
+++ b/cmd/os_mgmt/src/os_mgmt.c
@@ -175,6 +175,7 @@
 
         rc = os_mgmt_taskstat_encode_one(&tasks_map, &task_info);
         if (rc != 0) {
+            cbor_encoder_close_container(&ctxt->encoder, &tasks_map);
             return rc;
         }
     }
diff --git a/cmd/stat_mgmt/src/stat_mgmt.c b/cmd/stat_mgmt/src/stat_mgmt.c
index 2f03a74..994d7c8 100644
--- a/cmd/stat_mgmt/src/stat_mgmt.c
+++ b/cmd/stat_mgmt/src/stat_mgmt.c
@@ -138,6 +138,7 @@
             break;
         } else if (rc != 0) {
             /* Error. */
+            cbor_encoder_close_container(&ctxt->encoder, &arr_enc);
             return rc;
         }