Fix a few Coverity warnings from the session manager work

- Be explicit about setting the copied flag in session::Key. Coverity seems
  confused about when that flag is set if it gets set by default
  initialization. This should fix 1452757 and 1452759.
- Explicitly copy the fields in ConnKey instead of using memcpy. Fixes
  1452758.
This commit is contained in:
Tim Wojtulewicz 2021-04-30 10:11:47 -07:00 committed by Tim Wojtulewicz
parent b3fe264faf
commit 36d5116628
3 changed files with 20 additions and 9 deletions

View file

@ -44,12 +44,26 @@ ConnKey::ConnKey(const IPAddr& src, const IPAddr& dst, uint16_t src_port,
}
}
detail::ConnKey::ConnKey(const ConnTuple& id)
ConnKey::ConnKey(const ConnTuple& id)
: ConnKey(id.src_addr, id.dst_addr, id.src_port, id.dst_port,
id.proto, id.is_one_way)
{
}
ConnKey& ConnKey::operator=(const ConnKey& rhs)
{
if ( this == &rhs )
return *this;
memcpy(&ip1, &rhs.ip1, sizeof(in6_addr));
memcpy(&ip2, &rhs.ip2, sizeof(in6_addr));
port1 = rhs.port1;
port2 = rhs.port2;
transport = rhs.transport;
return *this;
}
} // namespace detail
IPAddr::IPAddr(const String& s)