]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
lib/libc/string/bcmp.c: fix integer overflow bug
authorRobert Clausecker <fuz@FreeBSD.org>
Wed, 12 Jul 2023 18:23:21 +0000 (20:23 +0200)
committerRobert Clausecker <fuz@FreeBSD.org>
Sun, 16 Jul 2023 17:36:17 +0000 (20:36 +0300)
commit4da7282a1882fc03c99591c27d44a2e6dfda364b
tree336c964f060209e59151e79e64fdba13d4de1763
parentc1e63e352e34b55ad577011fa4729f0638fb3fdf
lib/libc/string/bcmp.c: fix integer overflow bug

bcmp() returned the number of remaining bytes when the main loop exits.
In case of a match, this is zero, else a positive integer.  On systems
where SIZE_MAX > INT_MAX, the implicit conversion from size_t to int in
the return value may cause the number of remaining bytes to overflow,
becoming zero and falsely indicating a successful comparison.

Fix the bug by always returning 0 on equality, 1 otherwise.

PR: 272474
Approved by: emaste
Reviewed by: imp
MFC After: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D41011
lib/libc/string/bcmp.c