Title: [212781] trunk/Source/WebKit2
Revision
212781
Author
[email protected]
Date
2017-02-21 17:07:10 -0800 (Tue, 21 Feb 2017)

Log Message

[WebRTC] WebKit2 should assert that libwebrtc transmitted IP addresses family is IP4 or IP6
https://bugs.webkit.org/show_bug.cgi?id=168691

Patch by Youenn Fablet <[email protected]> on 2017-02-21
Reviewed by Alex Christensen.

Adding some asserts that family is IPv4 or IPv6.

* Shared/RTCNetwork.cpp:
(WebKit::RTCNetwork::IPAddress::decode):
(WebKit::RTCNetwork::IPAddress::encode):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (212780 => 212781)


--- trunk/Source/WebKit2/ChangeLog	2017-02-22 01:05:13 UTC (rev 212780)
+++ trunk/Source/WebKit2/ChangeLog	2017-02-22 01:07:10 UTC (rev 212781)
@@ -1,3 +1,16 @@
+2017-02-21  Youenn Fablet  <[email protected]>
+
+        [WebRTC] WebKit2 should assert that libwebrtc transmitted IP addresses family is IP4 or IP6
+        https://bugs.webkit.org/show_bug.cgi?id=168691
+
+        Reviewed by Alex Christensen.
+
+        Adding some asserts that family is IPv4 or IPv6.
+
+        * Shared/RTCNetwork.cpp:
+        (WebKit::RTCNetwork::IPAddress::decode):
+        (WebKit::RTCNetwork::IPAddress::encode):
+
 2017-02-20  Simon Fraser  <[email protected]>
 
         Add support to PlatformCALayer/GraphicsLayerCA for subpixel-antialiased text, with a Setting and a MiniBrowser switch

Modified: trunk/Source/WebKit2/Shared/RTCNetwork.cpp (212780 => 212781)


--- trunk/Source/WebKit2/Shared/RTCNetwork.cpp	2017-02-22 01:05:13 UTC (rev 212780)
+++ trunk/Source/WebKit2/Shared/RTCNetwork.cpp	2017-02-22 01:07:10 UTC (rev 212781)
@@ -65,9 +65,13 @@
     int family;
     if (!decoder.decode(family))
         return false;
+
+    ASSERT(family == AF_INET || family == AF_INET6);
+
     IPC::DataReference data;
     if (!decoder.decode(data))
         return false;
+
     if (family == AF_INET) {
         if (data.size() != sizeof(in_addr))
             return false;
@@ -74,6 +78,7 @@
         result.value = rtc::IPAddress(*reinterpret_cast<const in_addr*>(data.data()));
         return true;
     }
+
     if (data.size() != sizeof(in6_addr))
         return false;
     result.value = rtc::IPAddress(*reinterpret_cast<const in6_addr*>(data.data()));
@@ -82,12 +87,16 @@
 
 void RTCNetwork::IPAddress::encode(IPC::Encoder& encoder) const
 {
-    encoder << value.family();
-    if (value.family() == AF_INET) {
+    auto family = value.family();
+    ASSERT(family == AF_INET || family == AF_INET6);
+    encoder << family;
+
+    if (family == AF_INET) {
         auto address = value.ipv4_address();
         encoder << IPC::DataReference(reinterpret_cast<const uint8_t*>(&address), sizeof(address));
         return;
     }
+
     auto address = value.ipv6_address();
     encoder << IPC::DataReference(reinterpret_cast<const uint8_t*>(&address), sizeof(address));
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to