From: Steinar H. Gunderson Date: Sun, 19 Feb 2012 19:16:19 +0000 (+0100) Subject: Fix a segfault in certain nonsensical group configurations. X-Git-Url: https://git.sesse.net/?p=ccbs;a=commitdiff_plain;h=22b778903cdf27ffc67ac70e8014e8b371984f79 Fix a segfault in certain nonsensical group configurations. --- 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