Explorar o código

catch stack overflow when recursive expr returned by macro

Nicolas Cannasse %!s(int64=13) %!d(string=hai) anos
pai
achega
dc134f5a56
Modificáronse 1 ficheiros con 5 adicións e 1 borrados
  1. 5 1
      interp.ml

+ 5 - 1
interp.ml

@@ -3814,7 +3814,11 @@ let decode_expr v =
 		| _ ->
 		| _ ->
 			raise Invalid_expr
 			raise Invalid_expr
 	in
 	in
-	loop v
+	try
+		loop v
+	with Stack_overflow ->
+		raise Invalid_expr
+		
 
 
 (* ---------------------------------------------------------------------- *)
 (* ---------------------------------------------------------------------- *)
 (* TYPE ENCODING *)
 (* TYPE ENCODING *)