diff --git a/common/utils/itti_analyzer/libparser/field_type.c b/common/utils/itti_analyzer/libparser/field_type.c
index 58538bd1fd59ff6dde33882fda0fdab6154b829a..bf62a06a24098221b5ff5731a017e4661acff125 100644
--- a/common/utils/itti_analyzer/libparser/field_type.c
+++ b/common/utils/itti_analyzer/libparser/field_type.c
@@ -16,7 +16,7 @@ int field_dissect_from_buffer(
     buffer_t *buffer, uint32_t offset, uint32_t parent_offset, int indent, gboolean new_line)
 {
     int length = 0;
-    char cbuf[200];
+    char cbuf[50 + (type->name ? strlen (type->name) : 0)];
     types_t *type_child;
     char array_info[50];
     new_line = FALSE;
diff --git a/common/utils/itti_analyzer/libparser/pointer_type.c b/common/utils/itti_analyzer/libparser/pointer_type.c
index 89de53312d79003183e79f4a90eabcc9c6518754..f35b96e29cb5f31cc218114ed854ec1794fb4f55 100644
--- a/common/utils/itti_analyzer/libparser/pointer_type.c
+++ b/common/utils/itti_analyzer/libparser/pointer_type.c
@@ -28,7 +28,7 @@ int pointer_dissect_from_buffer(
     {
         DISPLAY_TYPE("Ptr");
     }
-    if (type->child->name && type->child) {
+    if (type->child && type->child->name) {
         /*
          INDENTED(stdout, indent, fprintf(stdout, "<%s>0x%08x</%s>\n",
          type->child->name, value, type->child->name));
diff --git a/common/utils/itti_analyzer/libparser/struct_type.c b/common/utils/itti_analyzer/libparser/struct_type.c
index 5cf9e708a899f8950f315813826b6ff75854ef65..487c884691dee0f27cef06ccd841b79f7ecee142 100644
--- a/common/utils/itti_analyzer/libparser/struct_type.c
+++ b/common/utils/itti_analyzer/libparser/struct_type.c
@@ -17,12 +17,12 @@ int struct_dissect_from_buffer(
 {
     int i;
     int length = 0;
-    char cbuf[200];
+    char cbuf[50 + (type->name ? strlen (type->name) : 0)];
     char *name;
 
     DISPLAY_PARSE_INFO("structure", type->name, offset, parent_offset);
 
-    memset (cbuf, 0, 200);
+    memset (cbuf, 0, sizeof(cbuf));
 
     if (new_line) {
         DISPLAY_TYPE("Str");
diff --git a/common/utils/itti_analyzer/libparser/typedef_type.c b/common/utils/itti_analyzer/libparser/typedef_type.c
index 41bd4152270389ea475befeec4bf2cf8b60453de..dc42dca9f37b8e440a2abd473fa571a832ce81a2 100644
--- a/common/utils/itti_analyzer/libparser/typedef_type.c
+++ b/common/utils/itti_analyzer/libparser/typedef_type.c
@@ -13,7 +13,7 @@ int typedef_dissect_from_buffer(
     buffer_t *buffer, uint32_t offset, uint32_t parent_offset, int indent, gboolean new_line)
 {
     int length = 0;
-    char cbuf[200];
+    char cbuf[50 + (type->name ? strlen (type->name) : 0)];
     types_t *type_child = NULL;
 
     DISPLAY_PARSE_INFO("typedef", type->name, offset, parent_offset);
diff --git a/common/utils/itti_analyzer/libparser/union_type.c b/common/utils/itti_analyzer/libparser/union_type.c
index fc3fe091eef0906e8d0ffbef140c8b5c0d0def6c..13db1f1755374ef9d03ecdb97a61e79d647297b1 100644
--- a/common/utils/itti_analyzer/libparser/union_type.c
+++ b/common/utils/itti_analyzer/libparser/union_type.c
@@ -55,13 +55,13 @@ int union_dissect_from_buffer(
     buffer_t *buffer, uint32_t offset, uint32_t parent_offset, int indent, gboolean new_line)
 {
     int length = 0;
-    char cbuf[200];
+    char cbuf[50 + (type->name ? strlen (type->name) : 0)];
     char *name;
     int union_child = 0;
 
     DISPLAY_PARSE_INFO("union", type->name, offset, parent_offset);
 
-    memset (cbuf, 0, 200);
+    memset (cbuf, 0, sizeof(cbuf));
 
 //    CHECK_FCT(buffer_has_enouch_data(buffer, offset + parent_offset, type->size / 8));