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