From 7b297fc49f27e4fe075141d4ac0d56ab80123835 Mon Sep 17 00:00:00 2001 From: Naman Sood Date: Sat, 8 May 2021 18:06:17 -0400 Subject: [PATCH] Fix index underflow causing segfault on DPI change (#241) * Fix index underflow causing segfault on DPI change * Stop over-allocating sensor lists --- src/logid/features/DPI.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/logid/features/DPI.cpp b/src/logid/features/DPI.cpp index ea6c762..82093a1 100644 --- a/src/logid/features/DPI.cpp +++ b/src/logid/features/DPI.cpp @@ -103,9 +103,10 @@ void DPI::setDPI(uint16_t dpi, uint8_t sensor) hidpp20::AdjustableDPI::SensorDPIList dpi_list; if(_dpi_lists.size() <= sensor) { dpi_list = _adjustable_dpi->getSensorDPIList(sensor); - for(std::size_t i = _dpi_lists.size()-1; i <= sensor; i++) { + for(std::size_t i = _dpi_lists.size(); i < sensor; i++) { _dpi_lists.push_back(_adjustable_dpi->getSensorDPIList(i)); } + _dpi_lists.push_back(dpi_list); } dpi_list = _dpi_lists[sensor]; _adjustable_dpi->setSensorDPI(sensor, getClosestDPI(dpi_list, dpi));