fix: strncpy reads out of bounds

This commit is contained in:
Jesse Kaukonen
2020-05-18 08:59:03 +03:00
parent a45ca59e04
commit 18909696a7
2 changed files with 3 additions and 3 deletions
+1 -1
View File
@@ -184,7 +184,7 @@ void DeviceDiscovery::OnBroadcast(const CommPacket &packet, apr_sockaddr_t *addr
}
++port_count;
strncpy(lidar_info.broadcast_code, broadcast_code.c_str(), sizeof(lidar_info.broadcast_code));
strncpy(lidar_info.broadcast_code, broadcast_code.c_str(), sizeof(lidar_info.broadcast_code)-1);
lidar_info.cmd_port = kListenPort + kCmdPortOffset + port_count;
lidar_info.data_port = kListenPort + kDataPortOffset + port_count;
lidar_info.sensor_port = kListenPort + kSensorPortOffset + port_count;
+2 -2
View File
@@ -207,7 +207,7 @@ bool DeviceManager::AddListeningDevice(const string &broadcast_code, DeviceMode
devices_[kHubDefaultHandle].connected = false;
strncpy(devices_[kHubDefaultHandle].info.broadcast_code,
broadcast_code.c_str(),
sizeof(devices_[kHubDefaultHandle].info.broadcast_code));
sizeof(devices_[kHubDefaultHandle].info.broadcast_code)-1);
devices_[kHubDefaultHandle].info.handle = kHubDefaultHandle;
return true;
}
@@ -216,7 +216,7 @@ bool DeviceManager::AddListeningDevice(const string &broadcast_code, DeviceMode
if (strlen(ite->info.broadcast_code) == 0) {
handle = ite - devices_.begin();
ite->connected = false;
strncpy(ite->info.broadcast_code, broadcast_code.c_str(), sizeof(ite->info.broadcast_code));
strncpy(ite->info.broadcast_code, broadcast_code.c_str(), sizeof(ite->info.broadcast_code)-1);
ite->info.handle = handle;
return true;
} else if (strncmp(ite->info.broadcast_code, broadcast_code.c_str(), sizeof(ite->info.broadcast_code)) == 0) {