Fix a delete type mismatch (deleting a sockaddr_in6* as a sockaddr*)

This triggered ASan, saying "object passed to delete has wrong type".
This error is caused by allocating a `struct sockaddr_in6`, casting it
and deleting it as `struct sockaddr*` which has a smaller size.

BUG=None

Review-Url: https://codereview.webrtc.org/2999053002
Cr-Commit-Position: refs/heads/master@{#19401}
diff --git a/webrtc/rtc_base/network_unittest.cc b/webrtc/rtc_base/network_unittest.cc
index b5c5912..9af9294 100644
--- a/webrtc/rtc_base/network_unittest.cc
+++ b/webrtc/rtc_base/network_unittest.cc
@@ -10,8 +10,11 @@
 
 #include "webrtc/rtc_base/network.h"
 
+#include <stdlib.h>
+
 #include <memory>
 #include <vector>
+
 #include "webrtc/rtc_base/checks.h"
 #include "webrtc/rtc_base/nethelpers.h"
 #include "webrtc/rtc_base/networkmonitor.h"
@@ -122,7 +125,8 @@
 
   struct sockaddr_in6* CreateIpv6Addr(const std::string& ip_string,
                                       uint32_t scope_id) {
-    struct sockaddr_in6* ipv6_addr = new struct sockaddr_in6;
+    struct sockaddr_in6* ipv6_addr = static_cast<struct sockaddr_in6*>(
+        malloc(sizeof(struct sockaddr_in6)));
     memset(ipv6_addr, 0, sizeof(struct sockaddr_in6));
     ipv6_addr->sin6_family = AF_INET6;
     ipv6_addr->sin6_scope_id = scope_id;
@@ -168,8 +172,8 @@
     struct ifaddrs* if_addr = list;
     while (if_addr != nullptr) {
       struct ifaddrs* next_addr = if_addr->ifa_next;
-      delete if_addr->ifa_addr;
-      delete if_addr->ifa_netmask;
+      free(if_addr->ifa_addr);
+      free(if_addr->ifa_netmask);
       delete if_addr;
       if_addr = next_addr;
     }