OpenSSL is a classic counter-example. Interestingly, there are two different approaches actually happening to fix OpenSSL:
- Taking the existing C code base, throwing a lot away and cleaning up the rest, e.g. LibreSSL (developed by the OpenBSD people)
- Taking the TLS spec and rewriting the library from scratch in a safe languange, e.g. ocaml-tls.
OpenSSL is a classic counter-example. Interestingly, there are two different approaches actually happening to fix OpenSSL:
- Taking the existing C code base, throwing a lot away and cleaning up the rest, e.g. LibreSSL (developed by the OpenBSD people)
- Taking the TLS spec and rewriting the library from scratch in a safe languange, e.g. ocaml-tls.