Entiendo lo que dices, pero una capa extra adicional no creo que venga mal, pues aunque no falla al pasar los datos a la función si se altera el entorno puede fallar el valor pasado y lo copiaría como mac algo que no sería una mac y todo fallaría y sería muy cantoso, antes de guardar una víctima tengo que asegurarme bien de que al menos los datos tienen las dimensiones esperadas (siempre y cuando no generemos errores al tratarlo de remediar).
Cuando incluyo una victima a la lista (ip,mac):
void lista_victimas::añadir_victima(victima v)
{
if (strlen((char*)v.ip) >= sizeof(u_char)* 4 &&
strlen((char*)v.mac) >= sizeof(u_char)* 6)
victimas.push_back(v);
}
Así aseguro las dimensiones, una capa de seguridad adicional.