From 8725bbe95d48c2ee7c858c2fb50dc13df037d1a8 Mon Sep 17 00:00:00 2001 From: Лач Date: Wed, 01 Jul 2020 18:37:33 +0000 Subject: [PATCH] fix(evaluator): forbid negative shift --- --- a/crates/jrsonnet-evaluator/src/evaluate.rs +++ b/crates/jrsonnet-evaluator/src/evaluate.rs @@ -160,9 +160,15 @@ Val::Num(((*v1 as i32) ^ (*v2 as i32)) as f64) } (Val::Num(v1), BinaryOpType::Lhs, Val::Num(v2)) => { + if *v2 < 0.0 { + create_error_result(Error::RuntimeError("shift by negative exponent".into()))? + } Val::Num(((*v1 as i32) << (*v2 as i32)) as f64) } (Val::Num(v1), BinaryOpType::Rhs, Val::Num(v2)) => { + if *v2 < 0.0 { + create_error_result(Error::RuntimeError("shift by negative exponent".into()))? + } Val::Num(((*v1 as i32) >> (*v2 as i32)) as f64) } -- gitstuff