Skip to content
New issue

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

Fixed crashes due to unhandeled exception in infrared_id_compensation code #24

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

mansoorcheema
Copy link

Fixed crash during conversion of corrupt received image data to cv image.

for (int u = 0; u < img->image.cols; u++) {
img->image.at<uchar>(v, u) =
infrared_compensation_[img->image.at<uchar>(v, u)];
try {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Prefer specific checks to try blocks where possible. E.g. if the issue is that the messages are sometimes empty you can directly check for that. If it fails for various reasons then try-catch is fine. The entire image conversion loop does not need to be in the try block I think? The only thing that could go wrong here is that the data is out of range, which you can statically check for when loading the infrared corrections (i.e. that all values between 0-255 are covered)

}
pub_.publish(img->toImageMsg());
} catch (const cv_bridge::Exception& e) {
std::cerr << "Could not convert image to CvImage\n";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better to stay consistent with logging (i.e. we use glog throughout the project). Consider replacing with more informative text, e.g. LOG(WARNING) << "Could not convert image for infrared_id_compensation, skipping frame (" << e.what() << ").";

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants