diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2016-07-06 17:09:51 +0200 | 
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2016-07-06 17:09:51 +0200 | 
| commit | 7a3569f80051d48ac427849c30b2f5685b368b71 (patch) | |
| tree | 20f02a2bcc02dabe5e7c86306c429be8a55d23ad | |
| parent | c2aef72fd640298b0e947e858d0f5a294854f852 (diff) | |
tracker/pt: fix out-of-bounds write
The input array has exactly 3 points. The vector has potentially more
points, sorted by circularity.
Spotted-by: @DaMichel
Closes #380
| -rw-r--r-- | tracker-pt/point_tracker.cpp | 4 | 
1 files changed, 2 insertions, 2 deletions
| diff --git a/tracker-pt/point_tracker.cpp b/tracker-pt/point_tracker.cpp index 1fb4128e..51f10470 100644 --- a/tracker-pt/point_tracker.cpp +++ b/tracker-pt/point_tracker.cpp @@ -37,7 +37,7 @@ void PointModel::get_d_order(const std::vector<cv::Vec2f>& points, int d_order[]      // fit line to orthographically projected points      std::vector<std::pair<float,int>> d_vals;      // get sort indices with respect to d scalar product -    for (unsigned i = 0; i<points.size(); ++i) +    for (unsigned i = 0; i < PointModel::N_POINTS; ++i)          d_vals.push_back(std::pair<float, int>(d.dot(points[i]), i));      std::sort(d_vals.begin(), @@ -45,7 +45,7 @@ void PointModel::get_d_order(const std::vector<cv::Vec2f>& points, int d_order[]                d_vals_sort                ); -    for (unsigned i = 0; i<points.size(); ++i) +    for (unsigned i = 0; i < PointModel::N_POINTS; ++i)          d_order[i] = d_vals[i].second;  } | 
