From 82fab0282c3b8457f34e015126c7802a6455000c Mon Sep 17 00:00:00 2001 From: rusefi Date: Mon, 2 Dec 2019 20:32:21 -0500 Subject: [PATCH] lovely write-out-of-bounds in case of invalid configuration bugfix --- firmware/hw_layer/adc_inputs.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/firmware/hw_layer/adc_inputs.cpp b/firmware/hw_layer/adc_inputs.cpp index ad94c795b0..44e13e3a7e 100644 --- a/firmware/hw_layer/adc_inputs.cpp +++ b/firmware/hw_layer/adc_inputs.cpp @@ -491,6 +491,11 @@ void addChannel(const char *name, adc_channel_e setting, adc_channel_mode_e mode if (setting == EFI_ADC_NONE) { return; } + if (/*type-limited (int)setting < 0 || */(int)setting>=HW_MAX_ADC_INDEX) { + firmwareError(CUSTOM_INVALID_ADC, "Invalid ADC setting %s", name); + return; + } + if (adcHwChannelEnabled[setting] != ADC_OFF) { getPinNameByAdcChannel(name, setting, errorMsgBuff); firmwareError(CUSTOM_ERR_ADC_USED, "ADC mapping error: input %s for %s already used by %s?", errorMsgBuff, name, adcHwChannelUsage[setting]);