void display(const char *path)
{
char msg[128];
int8_t size;
memset(msg, 0, 128);
FILE *file = fopen(path, "r");
size_t n = fread(&size, 1, 1, file);
if (n == 0 || size > 128)
return;
n = fread(msg, 1, size, file);
puts(msg);
}
int main(int argc, char *argv[])
{
if (argc != 2)
return 1;
display(argv[1]);
return 0;
}
Как я могу сделать это переполнение буфера? Я имею в виду, что буфер составляет 128 байтов. Но не проверяет ли код, превышает ли размер 128? Если это так, то он просто вернется раньше, а если нет, он будет копировать менее 128 байт из файла в msg?Как я могу сделать это переполнение буфера?