diff --git a/src/extensions/map/cmduchecker.c b/src/extensions/map/cmduchecker.c
index 5b5e44994b0dad37be02f0ea4b063e441826f5a6..d2ae3fb2480d5a88f2bbe3477a959c5bf2b07f66 100644
--- a/src/extensions/map/cmduchecker.c
+++ b/src/extensions/map/cmduchecker.c
@@ -54,16 +54,16 @@
 
 #define tlv_validate_multi(iter, t, d)				\
 ({								\
-	bool valid = true;					\
+	int ret = 0;						\
 	iter = 0;						\
 	while (iter < TLV_MAXNUM && d) {			\
 		if (validate_ ## t((d)->data, tlv_length(d))) {	\
-			valid = false;				\
+			ret = -1;				\
 			break;					\
 		}						\
 		iter++;						\
 	}							\
-	valid;							\
+	ret;							\
 })
 
 #ifdef EASYMESH_VENDOR_EXT