mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-25 18:22:59 +02:00
fix(NetworkInterface): Unterminated string possible in NetworkInterfaceImpl::setPhyParams() #3301
This commit is contained in:
@@ -243,8 +243,12 @@ NetworkInterfaceImpl::NetworkInterfaceImpl(const std::string& name,
|
|||||||
void NetworkInterfaceImpl::setPhyParams()
|
void NetworkInterfaceImpl::setPhyParams()
|
||||||
{
|
{
|
||||||
#if !defined(POCO_OS_FAMILY_WINDOWS) && !defined(POCO_VXWORKS)
|
#if !defined(POCO_OS_FAMILY_WINDOWS) && !defined(POCO_VXWORKS)
|
||||||
struct ifreq ifr;
|
struct ifreq ifr{};
|
||||||
std::strncpy(ifr.ifr_name, _name.c_str(), IFNAMSIZ);
|
std::size_t szFrom = _name.size();
|
||||||
|
std::size_t szTo = IFNAMSIZ - 1;
|
||||||
|
std::size_t sz = szFrom <= szTo ? szFrom : szTo;
|
||||||
|
std::strncpy(ifr.ifr_name, _name.c_str(), sz);
|
||||||
|
|
||||||
DatagramSocket ds(SocketAddress::IPv4);
|
DatagramSocket ds(SocketAddress::IPv4);
|
||||||
|
|
||||||
ds.impl()->ioctl(SIOCGIFFLAGS, &ifr);
|
ds.impl()->ioctl(SIOCGIFFLAGS, &ifr);
|
||||||
|
|||||||
Reference in New Issue
Block a user