From 99bf1c6f625d0bdb50a6c66b95b3f8b1620869f0 Mon Sep 17 00:00:00 2001
From: Jakob Olsson <jakob.olsson@iopsys.eu>
Date: Mon, 7 Jun 2021 13:17:47 +0200
Subject: [PATCH] cntlr_map_debug: fix offset issue for topology response
 debugging

---
 src/core/cntlr_map_debug.c | 45 ++++++++++++++++++++------------------
 1 file changed, 24 insertions(+), 21 deletions(-)

diff --git a/src/core/cntlr_map_debug.c b/src/core/cntlr_map_debug.c
index e82d3568..5f018ace 100644
--- a/src/core/cntlr_map_debug.c
+++ b/src/core/cntlr_map_debug.c
@@ -93,7 +93,9 @@ struct tlv_ap_oper_bss {
 		*/
 		struct tlv_ap_oper_bss *tlv = (struct tlv_ap_oper_bss *)tv[1][0]->data;
 		uint8_t *data = (uint8_t *) tlv + 1;
-		int i;
+		int i, offset = 0;
+
+		offset += 1;
 
 		trace("TLV: %s\n", map_stringify_tlv_type(tv[1][0]->type));
 
@@ -103,11 +105,11 @@ struct tlv_ap_oper_bss {
 			int j;
 
 			trace("\t\tradio_id: " MACFMT "\n",
-				MAC2STR(data));
-			data += 6;
+				MAC2STR(&tlv[offset]));
+			offset += 6;
 
-			num_bss = *data;
-			data += 1;
+			memcpy(&num_bss, &tlv[offset], 1);
+			offset += 1;
 
 			trace("\t\tbss_nr: %d\n",
 				num_bss);
@@ -115,18 +117,18 @@ struct tlv_ap_oper_bss {
 				uint8_t ssidlen = 0;
 
 				trace("\t\t\tbssid: " MACFMT "\n",
-					MAC2STR(data));
-				data += 6;
+					MAC2STR(&tlv[offset]));
+				offset += 6;
 
-				ssidlen = *data;
+				memcpy(&ssidlen, &tlv[offset], 1);
 				trace("\t\t\tssid_len: %d\n",
 					ssidlen);
-				data += 1;
+				offset += 1;
 
 				trace("\t\t\tssid: %.*s\n",
 					ssidlen,
-					data);
-				data += ssidlen;
+					&tlv[offset]);
+				offset += ssidlen;
 			}
 		}
 	}
@@ -146,8 +148,9 @@ struct tlv_assoc_client {
 } __attribute__((packed));
 */
 		struct tlv_assoc_client *tlv = (struct tlv_assoc_client *)tv[2][0]->data;
-		uint8_t *data = (uint8_t *) tlv + 1;
-		int i;
+		int i, offset = 0;
+
+		offset += 1;
 
 		trace("TLV: %s\n", map_stringify_tlv_type(tv[2][0]->type));
 
@@ -158,22 +161,22 @@ struct tlv_assoc_client {
 			int j;
 
 			trace("\t\tbssid: " MACFMT "\n",
-				MAC2STR(data));
-			data += 6;
+				MAC2STR(&tlv[offset]));
+			offset += 6;
 
-			num_client = BUF_GET_BE16(data);
-			data += 2;
+			num_client = BUF_GET_BE16(tlv[offset]);
+			offset += 2;
 
 			trace("\t\tassoc_clients_nr: %u\n", num_client);
 			for (j = 0; j < num_client; j++) {
 				uint16_t conntime = 0;
 
 				trace("\t\t\tclient_addr: " MACFMT "\n",
-					MAC2STR(data));
-				data += 6;
+					MAC2STR(&tlv[offset]));
+				offset += 6;
 
-				conntime = BUF_GET_BE16(data);
-				data += 2;
+				conntime = BUF_GET_BE16(tlv[offset]);
+				offset += 2;
 				trace("\t\t\tuptime: 0x%04x\n", conntime);
 			}
 		}
-- 
GitLab