|
@@ -1694,7 +1694,7 @@ process_fw_diag_event_data(uint8_t *datap, uint32_t num_data)
|
|
uint32_t diag_data_len; /* each fw diag payload */
|
|
uint32_t diag_data_len; /* each fw diag payload */
|
|
struct wlan_diag_data *diag_data;
|
|
struct wlan_diag_data *diag_data;
|
|
|
|
|
|
- while (num_data > 0) {
|
|
|
|
|
|
+ while (num_data >= sizeof(struct wlan_diag_data)) {
|
|
diag_data = (struct wlan_diag_data *)datap;
|
|
diag_data = (struct wlan_diag_data *)datap;
|
|
diag_type = WLAN_DIAG_0_TYPE_GET(diag_data->word0);
|
|
diag_type = WLAN_DIAG_0_TYPE_GET(diag_data->word0);
|
|
diag_data_len = WLAN_DIAG_0_LEN_GET(diag_data->word0);
|
|
diag_data_len = WLAN_DIAG_0_LEN_GET(diag_data->word0);
|