Могу ли я удалить проверки NULL и bounds, если я использую SAL?

Насколько я могу положиться на SAL? Нужно ли делать

NSTATUS my_func(_In_ int *p)
{
    if (NULL == p) {
        return STATUS_INVALID_PARAMETER;
    }
    *p = 1;
    return STATUS_SUCCESS;
}

или я могу просто сделать

NTSTATUS my_func(_In_ int *p)
{
    *p = 1;
    return STATUS_SUCCESS;
}

1 ответ

Решение

SAL предоставляет только статические проверки во время компиляции. Это предполагает, что весь задействованный код имеет соответствующие аннотации и также был проверен. Это нормально для вашего приложения или модуля, но будьте осторожны на границах с другими библиотеками.

Другие вопросы по тегам