MISRA C:2012 Dir 4.14

Валидность значений, полученных от внешних источников, должна проверяться

Описание

Направляющее определение

Валидность значений, полученных от внешних источников, должна проверяться.

Объяснение

Значения, происходящие из внешних источников, могут быть недопустимыми из-за ошибок или обдумать модификацию атакующими. Перед использованием данных необходимо проверять данные на валидность.

Например:

  • Перед использованием внешнего входа как индекс массива необходимо проверять, может ли он потенциально вызвать ошибку границ массивов.

  • Перед использованием переменной, чтобы управлять циклом, необходимо проверять, может ли это потенциально привести к бесконечному циклу.

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Примеры

развернуть все

#include <stdio.h>

void f1(char from_user[])
{
        char input [128];
        (void) sscanf (from_user, "%128c", input);
        (void) sprintf ("%s", input);    
}

В этом примере, sscanf оператор несовместим, когда нет никакой проверки, чтобы гарантировать, что ввод данных пользователем пустой отключенный. Последующий sprintf оператор, который выводит строку, может потенциально привести к ошибке границ массивов (переполнение буфера).

Проверяйте информацию

Группа: проект Кода
Категория: необходимый
Категория AGC: необходимый
Введенный в R2017a