Я использую «Fortify», чтобы найти уязвимости в кибербезопасности.
Когда у меня следующий код:
char buff[30];
int n;
n=snprintf(buff,sizeof(buff), "%li", (long)lValue);
Я получаю ошибку завершения строки, как и должно быть. Чтобы исправить это, я пишу:
char buff[30];
int m,n;
n=snprintf(NULL,0,"%li", (long)lValue);
if (n < sizeof(buff) && (n > 0)) {
m=snprintf(buff,sizeof(buff),"%li", (long)lValue);
}
Теперь я получаю ошибку завершения строки в обеих строках, содержащих snprintf (…). Я перепробовал много вариантов. Как мне избавиться от этих ошибок.