diff --git a/src/core/agent_cmdu_generator.c b/src/core/agent_cmdu_generator.c
index aeff49442cf267f460ae072523d45535f57c5087..5e685b1171fbc9ac3f8ff64d11492366e52e4527 100644
--- a/src/core/agent_cmdu_generator.c
+++ b/src/core/agent_cmdu_generator.c
@@ -371,6 +371,13 @@ struct cmdu_cstruct *agent_gen_ap_metrics_response(struct agent *a,
 		}
 	}
 
+	/* if tlv_index is zero,
+	 * means no valid data is found
+	 * free the allocated memory for tlvs
+	 */
+	if (tlv_index == 0)
+		goto error;
+
 	return cmdu;
 
 error: