--- 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 /*