On some platforms, socket descriptors may use types larger than int.
When these values exceed INT_MAX, conversion to int can truncate to
negative values causing RTMP connection failures, and even accidentally
affect other socket when high-value descriptors map to existing
lower-value sockets after integer conversion. This check ensures socket
values are within the safe range before passing them to the RTMP
library.
Closes #19399
if(!r)
return CURLE_FAILED_INIT;
+ if(conn->sock[FIRSTSOCKET] > INT_MAX) {
+ /* The socket value is invalid for rtmp. */
+ return CURLE_FAILED_INIT;
+ }
+
r->m_sb.sb_socket = (int)conn->sock[FIRSTSOCKET];
/* We have to know if it is a write before we send the