diff --git a/daemon/src/upnp/upnp_control.cpp b/daemon/src/upnp/upnp_control.cpp index c30dbaefab68dc8cf9513abfabbdd87a3e1ab43d..ffcf933fa523c2aea76afa92b32f71a099ca9187 100644 --- a/daemon/src/upnp/upnp_control.cpp +++ b/daemon/src/upnp/upnp_control.cpp @@ -82,12 +82,13 @@ Controller::addAnyMapping(uint16_t port_desired, Mapping mapping = upnpContext_->addAnyMapping(port_desired, port_local, type, use_same_port, unique); if (mapping) { + auto usedPort = mapping.getPortExternal(); if (port_used) - *port_used = mapping.getPortExternal(); + *port_used = usedPort; /* add to map */ auto& instanceMappings = type == PortType::UDP ? udpMappings_ : tcpMappings_; - instanceMappings.emplace(*port_used, std::move(mapping)); + instanceMappings.emplace(usedPort, std::move(mapping)); return true; } #endif