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

Commit a5a7103f authored by Felix Fietkau's avatar Felix Fietkau Committed by John W. Linville
Browse files

p54: fix a NULL pointer dereference bug



If the RSSI calibration table was not found or not parsed properly,
priv->rssi_db will be NULL, p54_rssi_find needs to be able to deal
with that.

Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
Acked-by: default avatarChristian Lamparter <chunkeey@googlemail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent c2a7dca0
Loading
Loading
Loading
Loading
+5 −2
Original line number Original line Diff line number Diff line
@@ -524,10 +524,13 @@ static int p54_parse_rssical(struct ieee80211_hw *dev,


struct p54_rssi_db_entry *p54_rssi_find(struct p54_common *priv, const u16 freq)
struct p54_rssi_db_entry *p54_rssi_find(struct p54_common *priv, const u16 freq)
{
{
	struct p54_rssi_db_entry *entry = (void *)(priv->rssi_db->data +
	struct p54_rssi_db_entry *entry;
						   priv->rssi_db->offset);
	int i, found = -1;
	int i, found = -1;


	if (!priv->rssi_db)
		return &p54_rssi_default;

	entry = (void *)(priv->rssi_db->data + priv->rssi_db->offset);
	for (i = 0; i < priv->rssi_db->entries; i++) {
	for (i = 0; i < priv->rssi_db->entries; i++) {
		if (!same_band(freq, entry[i].freq))
		if (!same_band(freq, entry[i].freq))
			continue;
			continue;