diff --git a/src/core/cntlr_map_debug.c b/src/core/cntlr_map_debug.c
index fad2834d5f40d39e76e3a24de8a0c80f048263ab..49adebdf1455e042a31e8306f54e3f58dbdba773 100644
--- a/src/core/cntlr_map_debug.c
+++ b/src/core/cntlr_map_debug.c
@@ -1117,18 +1117,20 @@ int debug_channel_scan_report(void *cntlr, struct cmdu_cstruct *cmdu)
 			trace("\top_class: %d\n", p1->op_class);
 			trace("\tch: %d\n", p1->ch);
 			trace("\tscan_res: 0x%02x\n", p1->scan_res);
-			trace("\ttime_len: %d\n", p1->time_len);
-			if (!p1->timestamp)
-				trace("\ttimestamp: %s\n", p1->timestamp);
-			trace("\tutilization: %d\n", p1->utilization);
-			trace("\tnoise: %d\n", p1->noise);
-			trace("\tnbr_neighbor: %d\n", p1->nbr_neighbors);
-			for (j = 0; j < p1->nbr_neighbors; j++) {
-				trace("\n\t\tbssid: " MACFMT "\n", MAC2STR(p1->neighbor_data[j].bssid));
-				trace("\t\tssid: %s\n", p1->neighbor_data[j].ssid);
-				trace("\t\tssid_len: %d\n", p1->neighbor_data[j].ssid_len);
-				trace("\t\tsignal_strength: %d\n", (signed char)p1->neighbor_data[j].signal_strength);
-				trace("\t\tbss_load_elm_present: %d\n", p1->neighbor_data[j].bss_load_elm_present);
+			if (p1->scan_res == 0x00) {
+				trace("\ttime_len: %d\n", p1->time_len);
+				if (!p1->timestamp)
+					trace("\ttimestamp: %s\n", p1->timestamp);
+				trace("\tutilization: %d\n", p1->utilization);
+				trace("\tnoise: %d\n", p1->noise);
+				trace("\tnbr_neighbor: %d\n", p1->nbr_neighbors);
+				for (j = 0; j < p1->nbr_neighbors; j++) {
+					trace("\n\t\tbssid: " MACFMT "\n", MAC2STR(p1->neighbor_data[j].bssid));
+					trace("\t\tssid: %s\n", p1->neighbor_data[j].ssid);
+					trace("\t\tssid_len: %d\n", p1->neighbor_data[j].ssid_len);
+					trace("\t\tsignal_strength: %d\n", (signed char)p1->neighbor_data[j].signal_strength);
+					trace("\t\tbss_load_elm_present: %d\n", p1->neighbor_data[j].bss_load_elm_present);
+				}
 			}
 			break;
 		}
diff --git a/src/core/cntlr_ubus.c b/src/core/cntlr_ubus.c
index c79d9e54fe59c54e714ef5121e268f1cadedce15..bbe37e0133680cf24435cd1ef6b10e872118b4fc 100644
--- a/src/core/cntlr_ubus.c
+++ b/src/core/cntlr_ubus.c
@@ -1653,14 +1653,14 @@ static int cntlr_scan(struct ubus_context *ctx, struct ubus_object *obj,
 		//(ubus call wifi.ap.wl0 status -> bssid)
 		if (!hwaddr_aton(radio[i], p->radio_data[i].radio_id)) {
 			dbg("failed to hwaddr radio_id\n");
-		return UBUS_STATUS_UNKNOWN_ERROR;
+			return UBUS_STATUS_UNKNOWN_ERROR;
 		}
 		p->radio_data[i].nbr_op_class = 1; //num_ch_to_scan; // TODO
 		if (p->radio_data[i].nbr_op_class > 0) {
 			p->radio_data[i].op_class_data = calloc(p->radio_data[i].nbr_op_class, sizeof(*p->radio_data[i].op_class_data));
-			}
+		}
 		if (p->radio_data[i].op_class_data) {
-			for (int j = 0; j < p->radio_data[i].nbr_op_class; j++) {
+			for (int j = 0; j < p->radio_data[i].nbr_op_class; j++) { /* j is already defined */
 				p->radio_data[i].op_class_data[j].nbr_ch = num_ch_to_scan[i];
 				// if (p->radio_data[i].op_class_data[j].nbr_ch==0) {all ch}
 				// channel list
@@ -1673,6 +1673,7 @@ static int cntlr_scan(struct ubus_context *ctx, struct ubus_object *obj,
 		cmdu_data->tlvs[0] = (uint8_t *)p;
 	strncpy(cmdu_data->intf_name, c->cfg.al_bridge, 15);
 	send_cmdu(c, cmdu_data);
+	map_free_cmdu(cmdu_data);
 	return 0;
 }