MISRA C нарушение Директивы 4.14 - PullRequest
0 голосов
/ 25 марта 2020

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

    int fun (uint8 * Data)
    {
        if (Data != NULL) {
            *Data = 0x00u;
            return(E_OK);    
        }
   }

Есть ли у кого-нибудь идеи, как исправить вышеуказанное предупреждение? Несмотря на то, что я проверяю NULL-указатель, я все же получаю нарушение Misra 4.14 I, e ... нужно проверить достоверность значений из внешних источников.

Как исправить предупреждение выше?

1 Ответ

1 голос
/ 25 марта 2020

Ваш код не нарушает MISRA- C: 2012 правило 14,4 (обратите внимание на написание).

Нарушением этого правила будет запись if(Data) вместо if(Data != NULL). Первый нарушает 14.4, последний соответствует MISRA- C.

Редактировать:

Однако существует директива 4.14 (обратите внимание на правописание) Достоверность значений, полученных из внешних источников, должна быть проверена , которая была добавлена ​​в MISRA- C: 2012 с первой поправкой AMD-1. Эта директива касается очистки входных данных от внешних источников, таких как файлы, пользовательский ввод, каналы связи и т. Д. c. Это не имеет абсолютно никакого отношения к вашему вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...