qcacld-3.0: fix skb leak possibility due to no failure handling

fix skb leak possibility due to no failure handling.

Change-Id: I0bd1e4cacdb408010057e35127a1ce9758c2e9c7
CRs-Fixed: 2627321
This commit is contained in:
Jinwei Chen
2020-03-05 13:55:31 +08:00
committed by nshrivas
parent ed622d6dea
commit bfe5d6b90c
2 changed files with 8 additions and 8 deletions

View File

@@ -321,18 +321,17 @@ static int dp_rx_thread_process_nbufq(struct dp_rx_thread *rx_thread)
vdev_id = QDF_NBUF_CB_RX_VDEV_ID(nbuf_list); vdev_id = QDF_NBUF_CB_RX_VDEV_ID(nbuf_list);
cdp_get_os_rx_handles_from_vdev(soc, vdev_id, &stack_fn, cdp_get_os_rx_handles_from_vdev(soc, vdev_id, &stack_fn,
&osif_vdev); &osif_vdev);
if (!stack_fn || !osif_vdev) { dp_debug("rx_thread %pK sending packet %pK to stack",
rx_thread, nbuf_list);
if (!stack_fn || !osif_vdev ||
QDF_STATUS_SUCCESS != stack_fn(osif_vdev, nbuf_list)) {
rx_thread->stats.dropped_invalid_os_rx_handles += rx_thread->stats.dropped_invalid_os_rx_handles +=
num_list_elements; num_list_elements;
qdf_nbuf_list_free(nbuf_list); qdf_nbuf_list_free(nbuf_list);
goto dequeue_rx_thread; } else {
rx_thread->stats.nbuf_sent_to_stack +=
num_list_elements;
} }
dp_debug("rx_thread %pK sending packet %pK to stack", rx_thread,
nbuf_list);
stack_fn(osif_vdev, nbuf_list);
rx_thread->stats.nbuf_sent_to_stack += num_list_elements;
dequeue_rx_thread:
nbuf_list = dp_rx_tm_thread_dequeue(rx_thread); nbuf_list = dp_rx_tm_thread_dequeue(rx_thread);
} }

View File

@@ -871,6 +871,7 @@ QDF_STATUS hdd_softap_rx_packet_cbk(void *adapter_context, qdf_nbuf_t rx_buf)
QDF_TRACE(QDF_MODULE_ID_HDD_SAP_DATA, QDF_TRACE(QDF_MODULE_ID_HDD_SAP_DATA,
QDF_TRACE_LEVEL_ERROR, QDF_TRACE_LEVEL_ERROR,
"%s: ERROR!!Invalid netdevice", __func__); "%s: ERROR!!Invalid netdevice", __func__);
qdf_nbuf_free(skb);
continue; continue;
} }
cpu_index = wlan_hdd_get_cpu(); cpu_index = wlan_hdd_get_cpu();