Мне нужно переписать функцию, чтобы она больше не была уязвимой для переполнения буфера стека.
void hello (char *tag)
{
char inp [16];
printf("enter value for %s:", tag);
gets(inp);
printf("hello your %s is %s\n", tag, inp);
}
Кроме того, как мне переписать следующий код, чтобы избежать переполнения буфера:
int main (int argc, char *argv[ ]) {
int valid=FALSE;
char str1[8];
char str2[8];
next_tag(str1);
gets(str2);
if (strncmp(str1,str2,8)==0)
valid=TRUE;
printf("buffer: str1(%s),str2(%s),valid(%d) \n", str1, str2, valid);
}