diff --git a/nanoFramework.System.Net/Sockets/Socket.cs b/nanoFramework.System.Net/Sockets/Socket.cs index e87e77f..d5c1fa8 100644 --- a/nanoFramework.System.Net/Sockets/Socket.cs +++ b/nanoFramework.System.Net/Sockets/Socket.cs @@ -909,6 +909,12 @@ public void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName opti throw new ObjectDisposedException(); } + // Linger option requires 8 bytes (enabled flag + linger time, 4 bytes each) + if (optionName == SocketOptionName.Linger && optionValue.Length < 8) + { + throw new SocketException(SocketError.Fault); + } + NativeSocket.setsockopt(this, (int)optionLevel, (int)optionName, optionValue); }