From 22b778903cdf27ffc67ac70e8014e8b371984f79 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Sun, 19 Feb 2012 20:16:19 +0100 Subject: [PATCH] Fix a segfault in certain nonsensical group configurations. --- bigscreen/groupscreen.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/bigscreen/groupscreen.cpp b/bigscreen/groupscreen.cpp index ab3ca54..1fee290 100644 --- a/bigscreen/groupscreen.cpp +++ b/bigscreen/groupscreen.cpp @@ -534,7 +534,11 @@ void GroupScreen::draw_next_up_player(unsigned char *buf, const Group &group, co tmp.push_back(max_score[i]); } std::sort(tmp.begin(), tmp.end()); - qualify_beat_worst_case = tmp[tmp.size() - group.num_qualifying]; + if (tmp.size() > group.num_qualifying) { + qualify_beat_worst_case = tmp[tmp.size() - group.num_qualifying]; + } else { + qualify_beat_worst_case = 0; + } std::vector tmp2; for (unsigned i = 0; i < group.players.size(); ++i) { @@ -544,7 +548,11 @@ void GroupScreen::draw_next_up_player(unsigned char *buf, const Group &group, co } std::sort(tmp2.begin(), tmp2.end()); - qualify_beat_best_case = tmp2[tmp2.size() - group.num_qualifying]; + if (tmp2.size() > group.num_qualifying) { + qualify_beat_best_case = tmp2[tmp2.size() - group.num_qualifying]; + } else { + qualify_beat_best_case = 0; + } } // print out the lines we can attain -- 2.39.2