| Index: webrtc/api/peerconnection.cc
|
| diff --git a/webrtc/api/peerconnection.cc b/webrtc/api/peerconnection.cc
|
| index 46bdec594a9c90fcd1630db748921237807902d2..83ae45069b27da85126b670368ff206e92353c01 100644
|
| --- a/webrtc/api/peerconnection.cc
|
| +++ b/webrtc/api/peerconnection.cc
|
| @@ -231,21 +231,22 @@ bool ParseIceServerUrl(const PeerConnectionInterface::IceServer& server,
|
| std::vector<std::string> tokens;
|
| cricket::ProtocolType turn_transport_type = cricket::PROTO_UDP;
|
| RTC_DCHECK(!url.empty());
|
| - rtc::tokenize(url, '?', &tokens);
|
| + rtc::tokenize_with_empty_tokens(url, '?', &tokens);
|
| std::string uri_without_transport = tokens[0];
|
| // Let's look into transport= param, if it exists.
|
| if (tokens.size() == kTurnTransportTokensNum) { // ?transport= is present.
|
| std::string uri_transport_param = tokens[1];
|
| - rtc::tokenize(uri_transport_param, '=', &tokens);
|
| - if (tokens[0] == kTransport) {
|
| - // As per above grammar transport param will be consist of lower case
|
| - // letters.
|
| - if (!cricket::StringToProto(tokens[1].c_str(), &turn_transport_type) ||
|
| - (turn_transport_type != cricket::PROTO_UDP &&
|
| - turn_transport_type != cricket::PROTO_TCP)) {
|
| - LOG(LS_WARNING) << "Transport param should always be udp or tcp.";
|
| - return false;
|
| - }
|
| + rtc::tokenize_with_empty_tokens(uri_transport_param, '=', &tokens);
|
| + if (tokens[0] != kTransport) {
|
| + LOG(LS_WARNING) << "Invalid transport parameter key.";
|
| + return false;
|
| + }
|
| + if (tokens.size() < 2 ||
|
| + !cricket::StringToProto(tokens[1].c_str(), &turn_transport_type) ||
|
| + (turn_transport_type != cricket::PROTO_UDP &&
|
| + turn_transport_type != cricket::PROTO_TCP)) {
|
| + LOG(LS_WARNING) << "Transport param should always be udp or tcp.";
|
| + return false;
|
| }
|
| }
|
|
|
|
|