diff --git a/sx_maxsockbuf.c b/sx_maxsockbuf.c index 0e4a480..3cccb44 100644 --- a/sx_maxsockbuf.c +++ b/sx_maxsockbuf.c @@ -66,6 +66,10 @@ sx_maxsockbuf(int s, int dir) } else if(phase==1) { phase=2; optval-=2048; continue; } else break; + } else if(voptval>=SX_MAXSOCKBUF_MAX) { + /* ... and getsockopt not failed and voptval>=optval. Do not allow + * to increase sockbuf too much even in case OS permits it */ + break; }; };