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:
parent
ed622d6dea
commit
bfe5d6b90c
@ -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);
|
||||
cdp_get_os_rx_handles_from_vdev(soc, vdev_id, &stack_fn,
|
||||
&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 +=
|
||||
num_list_elements;
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -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_LEVEL_ERROR,
|
||||
"%s: ERROR!!Invalid netdevice", __func__);
|
||||
qdf_nbuf_free(skb);
|
||||
continue;
|
||||
}
|
||||
cpu_index = wlan_hdd_get_cpu();
|
||||
|
Loading…
Reference in New Issue
Block a user