From: Valentin Bartenev Date: Sun, 28 Jul 2019 14:19:51 +0000 (+0300) Subject: Fixed undefined behaviour in left shift of negative numbers. X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=2d7ba6381876d9592bf804bb15e0037ebdec5800;p=njs.git Fixed undefined behaviour in left shift of negative numbers. Now it's implementation defined. --- diff --git a/njs/njs_vmcode.c b/njs/njs_vmcode.c index fae0ca7f..f6068240 100644 --- a/njs/njs_vmcode.c +++ b/njs/njs_vmcode.c @@ -421,7 +421,8 @@ next: i32 = njs_number_to_int32(num); if (op == NJS_VMCODE_LEFT_SHIFT) { - i32 <<= u32; + /* Shifting of negative numbers is undefined. */ + i32 = (uint32_t) i32 << u32; } else { i32 >>= u32; }