erlang / docker-erlang-otp

the Official Erlang OTP image on Docker Hub
https://hub.docker.com/_/erlang/
Apache License 2.0
183 stars 78 forks source link

make SCTP in images work older Linux kernels #477

Open RoadRunnr opened 2 months ago

RoadRunnr commented 2 months ago

Linux SCTP ioctl argument length checking is not forward compatible with newer kernel headers.

The length of the SCTP ioctl argument is based on the size of some SCTP structs. If code compiled with newer kernel headers, where the SCTP structs are larger, is running on an older kernel and tries to pass an SCTP struct that is larger than what the running kernel supports, then the ioctl results in an error.

Erlang's SCTP code does exactly that. This means that SCTP in an Erlang VM that has been compiled with recent kernel headers will not work on older kernels.

This change pulls in Linux 5.4.5 kernel headers (and only the kernel headers) from Alpine 3.12. The resulting images will have working SCTP support when running on Linux 5.4.5 and newer.

Replacement for the outdated #336, fixes #332