]> git.ipfire.org Git - thirdparty/glibc.git/commit
Fix signed integer overflow in random_r (bug 17343).
authorJoseph Myers <joseph@codesourcery.com>
Tue, 20 Mar 2018 18:25:24 +0000 (18:25 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Thu, 10 May 2018 10:56:25 +0000 (10:56 +0000)
commit36fed309f6e7d847b916c35eac7126831fe8427f
tree3daf3d3dfcfdc6a9c5ccc01eaa980a42d7c6ab3c
parent623f4aef132ad0412fb546324a7b7adb769309fd
Fix signed integer overflow in random_r (bug 17343).

Bug 17343 reports that stdlib/random_r.c has code with undefined
behavior because of signed integer overflow on int32_t.  This patch
changes the code so that the possibly overflowing computations use
unsigned arithmetic instead.

Note that the bug report refers to "Most code" in that file.  The
places changed in this patch are the only ones I found where I think
such overflow can occur.

Tested for x86_64 and x86.

[BZ #17343]
* stdlib/random_r.c (__random_r): Use unsigned arithmetic for
possibly overflowing computations.

(cherry picked from commit 8a07b0c43c46a480da070efd53a2720195e2256f)
ChangeLog
stdlib/random_r.c