Na řádkách L61-L68 buffer overflow není. Data se cpou o ostringstreamu a limitem je maximalne velikost paměti - cpou se po blocich
Použití sprintf a sscanf by se dalo jistě nahradit lepším řešením, ale v daném kontextu ano bylo rychlejší pro implementaci a i troufnu si říct i pro performance.
Se závěrem nesouhlasím. Pokud někdo přebírá kód formou copy&paste - je zodpovědný za jeho obsah, jako by ho napsal sám, svými prsty.
Pokud jej přebírá jako knihovnu, je zodpovědnost na autorovi knihovny. Také je potřeba, aby dotyčný definoval kde se knihovna hodí - stejně jako si koupíte v reálném obchodě zařízení, taky je napsáno, že se nesmí používat tu a tam a že je k úrčitému účelu.
Nespoléhal bych se slepě na překladač s tím, že musí zaručit bezpečnost. Nemusí. Pokud tomu půjde naproti bezva, ale nemusí.