¿Hay implementaciones gratuitas de strcpy_s y / o TR24731-1?

Tengo un proyecto antiguo que se mezcla C y C ++. Hace un uso extensivo de cadenas C y de strcpy , strcat , strncpy , strncat , etc. He descubierto varios desbordamientos de búfer y me gustaría usar funciones más seguras, como strcpy_s . MSVC incluye esas funciones, pero necesito algo que funcione en varias plataformas: linux, osx y, al menos, ventanas.

Sé de strlcpy , pero como muchas personas han notado ( ejemplo ), realmente no es una mejora.


Entonces: ¿Hay implementaciones gratuitas de strcpy_s , strcat_s , etc, o de todo el TR24731-1 ?

Necesito algo que sea de public domain o BSD , pero si conoce implementaciones bajo otras licencias, continúe y enumérelas, estoy seguro de que alguien más se beneficiará.

Pruebe con la biblioteca de Safe C. Está bajo la licencia MIT y, de acuerdo con esta lista, implementa las funciones que está buscando:

La biblioteca de Safe C proporciona funciones de cadena y memoria de comprobación de límites según ISO / IEC TR24731. Estas funciones son funciones alternativas a la biblioteca C estándar existente que promueven una progtwigción más segura.

Puede usar memcpy y memset , etc., que son portátiles y más seguros que las funciones de cadena.

¿Por qué no usar strncpy y strncat ? Al contrario de strlcpy y strlcat , son funciones C estándar. Estas funciones no son perfectas, pero puedes usarlas de manera segura.

Y también tenga en cuenta que las funciones _s comprobación de límites son opcionales en el estándar actual.