Welcome! Log In Create A New Profile

Advanced

[njs] Fixed undefined behaviour in left shift of negative numbers.

Valentin Bartenev
July 28, 2019 10:22AM
details: https://hg.nginx.org/njs/rev/6be62551e6d4
branches:
changeset: 1081:6be62551e6d4
user: Valentin Bartenev <vbart@nginx.com>
date: Sun Jul 28 17:19:51 2019 +0300
description:
Fixed undefined behaviour in left shift of negative numbers.

Now it's implementation defined.

diffstat:

njs/njs_vmcode.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diffs (13 lines):

diff -r 07989e97b198 -r 6be62551e6d4 njs/njs_vmcode.c
--- a/njs/njs_vmcode.c Sun Jul 28 15:00:40 2019 +0300
+++ b/njs/njs_vmcode.c Sun Jul 28 17:19:51 2019 +0300
@@ -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;
}
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[njs] Fixed undefined behaviour in left shift of negative numbers.

Valentin Bartenev 234 July 28, 2019 10:22AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 154
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready