Взводим флаг переполнения (или увеличиваем счетчик переполнений), самый старый выбрасываем, новый и остальные в порядке поступления оставляем. Т.е. при переполнении у нас всегда в буфере находится максимальное количество символов, пришедших последними (самые свежие), и в порядке поступления.