lib/text: protect the `format` method against inconsistencies
authorAlexis Laferrière <alexis.laf@xymus.net>
Fri, 19 Jun 2015 15:00:24 +0000 (11:00 -0400)
committerAlexis Laferrière <alexis.laf@xymus.net>
Sat, 20 Jun 2015 15:11:25 +0000 (11:11 -0400)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

lib/standard/text/abstract_text.nit

index 2c29659..37ae8a7 100644 (file)
@@ -868,8 +868,12 @@ abstract class Text
                                i -= 1
                                var fmt_end = i
                                var ciph_len = fmt_end - ciph_st + 1
+
+                               var arg_index = substring(ciph_st, ciph_len).to_i - 1
+                               if arg_index >= args.length then continue
+
                                s.push substring(curr_st, fmt_st - curr_st)
-                               s.push args[substring(ciph_st, ciph_len).to_i - 1].to_s
+                               s.push args[arg_index].to_s
                                curr_st = i + 1
                        end
                        i += 1