Как избавиться от ошибки завершения строки - PullRequest
0 голосов
/ 09 января 2020

Я использую «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 (…). Я перепробовал много вариантов. Как мне избавиться от этих ошибок.

...