Поскольку x
на самом деле не проверено и получено через scanf, должны быть потенциально испорченные данные, которые можно использовать для доступа к bytes
.
Код (на самом деле не логично делать что-либо продуктивное):
void getMyBytes(){
int x, byte;
int bytes[20];
scanf("%u %u", &x, &byte);
bytes[x-1] = byte;
}
Известное простое (безобразное) исправление для этого кода:
void getMyBytes(){
int x, byte;
int bytes[20];
scanf("%u %u", &x, &byte);
if (x > sizeof(bytes)/sizeof(*bytes)) return; --> validation fix
bytes[x-1] = byte;
}
Какие входные данные я могу ввести в scanf, чтобы получить доступ к bytes
?