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.
The new implementation returns different result than old one
within variation permitted by spec. May break compatibility.
Sponsored by: FreeBSD Foundation
PR: 272474 (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272474)