Могу ли я удалить проверки 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 предоставляет только статические проверки во время компиляции. Это предполагает, что весь задействованный код имеет соответствующие аннотации и также был проверен. Это нормально для вашего приложения или модуля, но будьте осторожны на границах с другими библиотеками.