[windows] Fix stale pointer dereference. am: 95e21bc268 am: 1d08a291f5 am: e129a11372 Original change: https://android-review.googlesource.com/c/platform/external/openscreen/+/1982890 Change-Id: Ie5b655e3ec45cfa0015f420157225ec0123ddad0
diff --git a/platform/impl/network_interface_win.cc b/platform/impl/network_interface_win.cc index f90d35d..c309545 100644 --- a/platform/impl/network_interface_win.cc +++ b/platform/impl/network_interface_win.cc
@@ -16,7 +16,6 @@ constexpr size_t INITIAL_BUFFER_SIZE = 15000; ULONG outbuflen = INITIAL_BUFFER_SIZE; std::vector<unsigned char> charbuf(INITIAL_BUFFER_SIZE); - PIP_ADAPTER_ADDRESSES paddrs = reinterpret_cast<IP_ADAPTER_ADDRESSES*>(charbuf.data()); DWORD ret = NO_ERROR; constexpr int MAX_RETRIES = 5; @@ -25,7 +24,7 @@ ret = GetAdaptersAddresses(AF_UNSPEC /* get both v4/v6 addrs */, GAA_FLAG_INCLUDE_PREFIX, NULL, - paddrs, + reinterpret_cast<IP_ADAPTER_ADDRESSES*>(charbuf.data()), &outbuflen); if (ret == ERROR_BUFFER_OVERFLOW) { charbuf.resize(outbuflen); @@ -40,7 +39,7 @@ } std::vector<InterfaceInfo> infos; - auto pcurraddrs = paddrs; + auto pcurraddrs = reinterpret_cast<IP_ADAPTER_ADDRESSES*>(charbuf.data()); while (pcurraddrs != nullptr) { // TODO: return the interfaces OSP_DVLOG << "\tIfIndex=" << pcurraddrs->IfIndex;