blob: a18a8f5c645784d6f5d93682a5f9f18c232cd155 [file] [log] [blame]
diff --git a/Source/ThirdParty/libwebrtc/Source/third_party/usrsctp/usrsctplib/user_mbuf.c b/Source/ThirdParty/libwebrtc/Source/third_party/usrsctp/usrsctplib/user_mbuf.c
index 7a1aaba855e..3ebd8a27b6b 100644
--- a/Source/ThirdParty/libwebrtc/Source/third_party/usrsctp/usrsctplib/user_mbuf.c
+++ b/Source/ThirdParty/libwebrtc/Source/third_party/usrsctp/usrsctplib/user_mbuf.c
@@ -232,7 +232,8 @@ static int clust_constructor_dup(caddr_t m_clust, struct mbuf* m)
m->m_ext.ext_size = size;
m->m_ext.ext_type = type;
m->m_ext.ref_cnt = refcnt;
- }
+ } else
+ SCTP_ZONE_FREE(zone_ext_refcnt, refcnt);
return (0);
}
@@ -527,7 +528,8 @@ mb_ctor_clust(void *mem, void *arg, int flgs)
m->m_ext.ext_size = size;
m->m_ext.ext_type = type;
m->m_ext.ref_cnt = refcnt;
- }
+ } else
+ SCTP_ZONE_FREE(zone_ext_refcnt, refcnt);
#endif
return (0);
}
diff --git a/Source/ThirdParty/libwebrtc/Source/third_party/usrsctp/usrsctplib/user_socket.c b/Source/ThirdParty/libwebrtc/Source/third_party/usrsctp/usrsctplib/user_socket.c
index a54996efdd8..b94e1e5c24a 100644
--- a/Source/ThirdParty/libwebrtc/Source/third_party/usrsctp/usrsctplib/user_socket.c
+++ b/Source/ThirdParty/libwebrtc/Source/third_party/usrsctp/usrsctplib/user_socket.c
@@ -2131,11 +2131,14 @@ done1:
int usrsctp_connect(struct socket *so, struct sockaddr *name, int namelen)
{
- struct sockaddr *sa;
+ struct sockaddr *sa = NULL;
errno = getsockaddr(&sa, (caddr_t)name, namelen);
- if (errno)
+ if (errno) {
+ if (sa)
+ FREE(sa, M_SONAME);
return (-1);
+ }
errno = user_connect(so, sa);
FREE(sa, M_SONAME);