webrtc: 修正 sdp 中 candidate 解析问题

https://datatracker.ietf.org/doc/html/rfc5245#section-15.1
> foundation = 1*32ice-char
This commit is contained in:
wxf 2021-06-18 13:36:25 +08:00
parent 807f9626d5
commit 5fc5a9ef5f

View File

@ -704,12 +704,13 @@ string SdpAttrSctpMap::toString() const {
} }
void SdpAttrCandidate::parse(const string &str) { void SdpAttrCandidate::parse(const string &str) {
char foundation_buf[32] = {0}; char foundation_buf[40] = {0};
char transport_buf[16] = {0}; char transport_buf[16] = {0};
char address_buf[32] = {0}; char address_buf[32] = {0};
char type_buf[16] = {0}; char type_buf[16] = {0};
if (7 != sscanf(str.data(), "%31[^ ] %" SCNu32 " %15[^ ] %" SCNu32 " %31[^ ] %" SCNu16 " typ %15[^ ]", // https://datatracker.ietf.org/doc/html/rfc5245#section-15.1
if (7 != sscanf(str.data(), "%32[^ ] %" SCNu32 " %15[^ ] %" SCNu32 " %31[^ ] %" SCNu16 " typ %15[^ ]",
foundation_buf, &component, transport_buf, &priority, address_buf, &port, type_buf)) { foundation_buf, &component, transport_buf, &priority, address_buf, &port, type_buf)) {
SDP_THROW(); SDP_THROW();
} }