From: Ekdohibs Date: Fri, 25 Aug 2017 11:06:59 +0000 (+0200) Subject: Translations: prevent remote crash with invalid translations X-Git-Tag: 5.0.0~893 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=6761e213836e902359c5d0acff277623dc3e1588;p=oweals%2Fminetest.git Translations: prevent remote crash with invalid translations --- diff --git a/src/util/string.cpp b/src/util/string.cpp index 6335aeafe..bb2d2f6a7 100644 --- a/src/util/string.cpp +++ b/src/util/string.cpp @@ -866,7 +866,12 @@ void translate_string(const std::wstring &s, const std::wstring &textdomain, // Here we have an argument; get its index and add the translated argument to the output. int arg_index = toutput[j] - L'1'; ++j; - result << args[arg_index]; + if (0 <= arg_index && (size_t)arg_index < args.size()) { + result << args[arg_index]; + } else { + // This is not allowed: show an error message + errorstream << "Ignoring out-of-bounds argument escape sequence in translation" << std::endl; + } } res = result.str(); }