diff options
Diffstat (limited to 'packet_distribution.cpp')
| -rw-r--r-- | packet_distribution.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/packet_distribution.cpp b/packet_distribution.cpp index 6c36ff2f..9915b3e2 100644 --- a/packet_distribution.cpp +++ b/packet_distribution.cpp @@ -206,14 +206,18 @@ void AOApplication::server_packet_received(AOPacket *p_packet) } else if (header == "SI") { - if (f_contents.size() < 3) + if (f_contents.size() != 3) goto end; char_list_size = f_contents.at(0).toInt(); - loaded_chars = 0; evidence_list_size = f_contents.at(1).toInt(); - loaded_evidence = 0; music_list_size = f_contents.at(2).toInt(); + + if (char_list_size < 1 || evidence_list_size < 0 || music_list_size < 0) + goto end; + + loaded_chars = 0; + loaded_evidence = 0; loaded_music = 0; destruct_courtroom(); |
