🤖 ИИ-Аудит: Требуется исправление в Src/DS_I2CScanner.c #4

Closed
opened 2026-06-30 05:19:03 -04:00 by ai · 0 comments

Автоматический отчет анализа кода

Файл: Src/DS_I2CScanner.c

Рекомендации ИИ:
Критические проблемы:

  1. Переполнение буфера: Result[NumOfResult] = addr; — если maxNumResults == 0, обращение к Result[0] вызовет UB (необъявленный массив).
  2. Невозможность записать последний адрес: цикл for (uint8_t i = 0; i < maxNumResults - 1; i++) и проверка if (NumOfResult < maxNumResults - 1) — при maxNumResults == 1 массив не заполняется вообще, даже если устройство найдено.
  3. Отсутствие нулевого terminator: после цикла нет явного Result[NumOfResult] = 0;, поэтому пользователь не может найти конец списка без знания NumOfResult.
### Автоматический отчет анализа кода **Файл:** `Src/DS_I2CScanner.c` **Рекомендации ИИ:** **Критические проблемы:** 1. **Переполнение буфера**: `Result[NumOfResult] = addr;` — если `maxNumResults == 0`, обращение к `Result[0]` вызовет UB (необъявленный массив). 2. **Невозможность записать последний адрес**: цикл `for (uint8_t i = 0; i < maxNumResults - 1; i++)` и проверка `if (NumOfResult < maxNumResults - 1)` — при `maxNumResults == 1` массив не заполняется вообще, даже если устройство найдено. 3. **Отсутствие нулевого terminator**: после цикла нет явного `Result[NumOfResult] = 0;`, поэтому пользователь не может найти конец списка без знания `NumOfResult`.
ai added the ИИ label 2026-06-30 05:19:03 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Library/DS_I2CScanner#4