Tags: artemredkin/swift-nio-ssl
Tags
Remove unsafe code from hostname verification (apple#166) Motivation: The hostname verification code operated on unsafe buffer pointers without any clear justification for doing so. While it may have been necessary to do that once, it certainly isn't necessary now. Modifications: Rewrite all the code to operate on Array. Throw a more meaningful error. Result: Bounds checking, better safety.
Add cross-compilation to symbol mangling. (apple#150) Motivation: BoringSSL potentially defines different symbols on different architecture and platform combinations. This means that we've historically missed mangling some symbol names when our script only involved building on macOS. We should build on more platforms to test this. Modifications: - Added support for cross compiling to Linux amd64, Linux aarch64, and Linux armv7 in symbol mangling script. - Added support for compiling for iOS armv6 and arm64 in symbol mangling script. Result: Harder to run the mangling script, better results when you do.
Remove NIO 2.9.0 build warnings. (apple#144) Motivation: We were one of the few first-party users of writeWithUnsafeMutableWritableBytes, and so we hit some build warnings. We should use the nice interface to request the number of bytes we actually want. Modifications: - Remove build warnings. - Correctly ask to read a whole SSL record instead of a fragment of one. Result: Better code
Use .note.GNU-stack section in ASM. (apple#137) Motivation: Well-formed Linux assembly code declares a .note.GNU-stack section in order to help out the linker. When absent, the linker makes some suboptimal linking decisions that can cause pain in running programs. Modifications: - Amend the vendoring script to add the .note.GNU-stack section to all assembly files on Linux. - Updated BoringSSL Results: Better linker behaviour.