fix: strncpy reads out of bounds
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user