Skip to content

Commit e082f30

Browse files
authored
[core] Fixed validation of input parameters in srt_connect (#2520).
Parameters: name and namelen.
1 parent 932e5bd commit e082f30

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

srtcore/api.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1179,7 +1179,7 @@ SRTSOCKET srt::CUDTUnited::accept(const SRTSOCKET listen, sockaddr* pw_addr, int
11791179
int srt::CUDTUnited::connect(SRTSOCKET u, const sockaddr* srcname, const sockaddr* tarname, int namelen)
11801180
{
11811181
// Here both srcname and tarname must be specified
1182-
if (!srcname || !tarname || size_t(namelen) < sizeof(sockaddr_in))
1182+
if (!srcname || !tarname || namelen < int(sizeof(sockaddr_in)))
11831183
{
11841184
LOGC(aclog.Error,
11851185
log << "connect(with source): invalid call: srcname=" << srcname << " tarname=" << tarname
@@ -1224,6 +1224,12 @@ int srt::CUDTUnited::connect(SRTSOCKET u, const sockaddr* srcname, const sockadd
12241224

12251225
int srt::CUDTUnited::connect(const SRTSOCKET u, const sockaddr* name, int namelen, int32_t forced_isn)
12261226
{
1227+
if (!name || namelen < int(sizeof(sockaddr_in)))
1228+
{
1229+
LOGC(aclog.Error, log << "connect(): invalid call: name=" << name << " namelen=" << namelen);
1230+
throw CUDTException(MJ_NOTSUP, MN_INVAL);
1231+
}
1232+
12271233
sockaddr_any target_addr(name, namelen);
12281234
if (target_addr.len == 0)
12291235
throw CUDTException(MJ_NOTSUP, MN_INVAL, 0);

0 commit comments

Comments
 (0)