⬢ DragonFlyBSD Kernel Audit
DF-4681 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/netif/ath/ath_hal/ar5212/ar2317.c
+++ b/sys/dev/netif/ath/ath_hal/ar5212/ar2317.c
@@ -402,6 +402,8 @@
 		/* if this pdGain is used */
 	}
 
+	if (numPdGainsUsed == 0)		/* EEPROM pd-gain data invalid */
+		return 0;
 	*pMinCalPower = Pmin_t2[0];
 	kk = 0; /* index for the final table */
 	for (ii = 0; ii < numPdGainsUsed; ii++) {
@@ -514,6 +516,11 @@
 		chan->channel, pRawDataset, pdGainOverlap_t2,
 		&minCalPower2317_t2,gainBoundaries, rfXpdGain, pdadcValues);
 	HALASSERT(1 <= numPdGainsUsed && numPdGainsUsed <= 3);
+	if (numPdGainsUsed < 1) {
+		HALDEBUG(ah, HAL_DEBUG_ANY, "%s: invalid pd gain data\n",
+		    __func__);
+		return AH_FALSE;
+	}
 
 #ifdef AH_USE_INIPDGAIN
 	/*