Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cc9e9499 authored by Om Prakash Tripathi's avatar Om Prakash Tripathi
Browse files

qcacmn: Fix static analysis invalid pointer dereference

Fix possibility of invalid pointer dereference pointed by
static analysis tool.

Change-Id: I9b682c44b2a1150015795a6cd497463eb7e3efd5
CRs-Fixed: 2407728
parent 3328ed96
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -611,17 +611,22 @@ static inline struct pdev_scan_ev_handler*
wlan_pdev_get_pdev_scan_ev_handlers(struct wlan_objmgr_pdev *pdev)
{
	uint8_t pdevid;
	struct wlan_scan_obj *scan;
	struct pdev_scan_ev_handler *pdev_ev_handler;
	struct wlan_scan_obj *scan = NULL;

	pdevid = wlan_objmgr_pdev_get_pdev_id(pdev);
	if (!pdev)
		goto err;

	pdevid = wlan_objmgr_pdev_get_pdev_id(pdev);
	scan = wlan_pdev_get_scan_obj(pdev);
	if (!scan)
		goto err;

	pdev_ev_handler =
		&scan->global_evhandlers.pdev_ev_handlers[pdevid];
	return &scan->global_evhandlers.pdev_ev_handlers[pdevid];

	return pdev_ev_handler;
err:
	scm_err("NULL pointer, pdev: 0x%pK, scan_obj: 0x%pK",
		pdev, scan);
	return NULL;
}

/**
+7 −0
Original line number Diff line number Diff line
@@ -1439,6 +1439,10 @@ ucfg_scan_register_event_handler(struct wlan_objmgr_pdev *pdev,

	scan = wlan_pdev_get_scan_obj(pdev);
	pdev_ev_handler = wlan_pdev_get_pdev_scan_ev_handlers(pdev);
	if (!pdev_ev_handler) {
		scm_err("null pdev_ev_handler");
		return QDF_STATUS_E_NULL_VALUE;
	}
	cb_handler = &(pdev_ev_handler->cb_handlers[0]);

	qdf_spin_lock_bh(&scan->lock);
@@ -1573,6 +1577,9 @@ ucfg_scan_unregister_event_handler(struct wlan_objmgr_pdev *pdev,
	}
	scan = wlan_pdev_get_scan_obj(pdev);
	pdev_ev_handler = wlan_pdev_get_pdev_scan_ev_handlers(pdev);
	if (!pdev_ev_handler)
		return;

	cb_handler = &(pdev_ev_handler->cb_handlers[0]);

	qdf_spin_lock_bh(&scan->lock);
+4 −1
Original line number Diff line number Diff line
@@ -98,7 +98,10 @@ util_get_last_scan_time(struct wlan_objmgr_vdev *vdev)
	pdev_id = wlan_scan_vdev_get_pdev_id(vdev);
	scan_obj = wlan_vdev_get_scan_obj(vdev);

	if (scan_obj)
		return scan_obj->pdev_info[pdev_id].last_scan_time;
	else
		return 0;
}

enum wlan_band util_scan_scm_chan_to_band(uint32_t chan)