Fix sigabort because of unhandled output of bound of cv::Rect
authorTae-Young Chung <ty83.chung@samsung.com>
Tue, 25 Jun 2024 03:54:04 +0000 (12:54 +0900)
committerTae-Young Chung <ty83.chung@samsung.com>
Tue, 25 Jun 2024 03:54:04 +0000 (12:54 +0900)
Change-Id: Ie6a0924a930bcbe4a8370bf08fa312c735e3c91d
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
inference/backends/private/src/PrivateInferenceFaceService.cpp

index 3bc640e026f39f6c3f1c5623aa997b7fd4f9da26..3097322e6b046fb1633009c54820933fbf3c1640 100644 (file)
@@ -222,6 +222,10 @@ void PrivateInferenceFaceService::invoke(BaseDataType &input)
             return;
 
         if (isLandmarkDetectTask) {
+            maxX = min(max(maxX, 0), cvData.cols);
+            maxY = min(max(maxY, 0), cvData.rows);
+            maxW = min(max(maxX+maxW, 0), cvData.cols) - maxX;
+            maxH = min(max(maxY+maxH, 0), cvData.rows) - maxY;
             cv::Mat roiCvData = cvData(cv::Rect(maxX, maxY, maxW, maxH)).clone();
 
             Points landmarks;