В ISO/IEC 9899:1999 именно по этой причине появилась функция snprintf (а также strncpy, strncat и аналогичные). Потому что авторы С не позаботились передачей в sprintf вместе с буфером для результата его длины, чтобы функция могла проконтролировать размер буфера. Поэтому переполнение буфера можно получить элементарно, особенно, при наличии желающих этот буфер переполнить.