We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
When a pcd file has size over uint32_t max (4.2G), it is going to cause segfault when using io::loadpcd or io::loadply.
https://github.com/PointCloudLibrary/pcl/blob/master/io/src/pcd_io.cpp#L319 this line:
int nr_points; cloud.data.resize (nr_points * cloud.point_step);
if the multiplication causes int32 to overflow, the data is resized wrong and cause segfault in the conversion to pcl::PointCloud.
not segfault
overflow causes memcopy to be less than expected
Any Binary file exceeding 4.3 G should do.
change the nr_points definition to size_t should fix it
The text was updated successfully, but these errors were encountered:
pcl::PCDReader::readHeader()
nr_points
size_t
int32
Thanks for reporting.
Sorry, something went wrong.
No branches or pull requests
When a pcd file has size over uint32_t max (4.2G), it is going to cause segfault when using io::loadpcd or io::loadply.
Your Environment
Context
https://github.com/PointCloudLibrary/pcl/blob/master/io/src/pcd_io.cpp#L319
this line:
if the multiplication causes int32 to overflow, the data is resized wrong and cause segfault in the conversion to pcl::PointCloud.
Expected Behavior
not segfault
Current Behavior
overflow causes memcopy to be less than expected
Code to Reproduce
Any Binary file exceeding 4.3 G should do.
Possible Solution
change the nr_points definition to size_t should fix it
The text was updated successfully, but these errors were encountered: