Чем опасно переполнение статического массива в C?
Да всё тем же. В стеке лежат некие данные (указатели, переменные, адреса возврата) и переполняя массив, вы тем самым затираете эти данные мусором.
Нашёл красивую картинку, которая наглядно объясняет, как лежат данные в стеке:
Взял тут: Stack Canaries with GCC: Checking for Stack Overfl...
Если в buffer2 писать сверх выделенного размера, то будут затёрты все данные, что лежат под ним.
тем что ты запишешь что-то поверх "хороших" данных и испортишь их