From a0e33711e727066a363bd3b1503c4e82a257d4dd Mon Sep 17 00:00:00 2001
From: Anjan Chanda <anjan.chanda@iopsys.eu>
Date: Sun, 10 Jan 2021 21:07:09 +0100
Subject: [PATCH] cmdu_put_tlv() updates cmdu pointers for tlv

---
 src/cmdu.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/cmdu.c b/src/cmdu.c
index 825c743d..13e972bf 100644
--- a/src/cmdu.c
+++ b/src/cmdu.c
@@ -313,9 +313,14 @@ int cmdu_put_tlv(struct cmdu_buff *c, struct tlv *t)
 		return -1;
 	}
 
-	*c->tail = t->type;
-	buf_put_be16(c->tail + 1, t->len);
-	memcpy(c->tail + 3, t->data, tlen);
+	if ((uint8_t *)t != c->tail) {
+		fprintf(stderr, "%s: tlv outside cmdu buffer; use cmdu_copy_tlv() instead\n",
+			__func__);
+		return -1;
+	}
+
+
+	buf_put_be16(c->tail + 1, tlen);
 	c->tail += tlen + sizeof(*t);
 	c->datalen += tlen + sizeof(*t);
 
-- 
GitLab