On 8 December 2014 at 11:42, Karel Zak <kzak@xxxxxxxxxx> wrote: > On Sun, Nov 30, 2014 at 01:57:35PM +0000, Sami Kerola wrote: >> text-utils/more.c:1137:20: runtime error: unsigned integer overflow: 0 - >> 1 cannot be represented in type 'size_t' (aka 'unsigned long') >> text-utils/more.c:1139:7: runtime error: unsigned integer overflow: 2 + >> 18446744073709551615 cannot be represented in type 'unsigned long' >> >> Signed-off-by: Sami Kerola <kerolasa@xxxxxx> >> --- >> text-utils/more.c | 6 +++--- >> 1 file changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/text-utils/more.c b/text-utils/more.c >> index a489953..4b03e0d 100644 >> --- a/text-utils/more.c >> +++ b/text-utils/more.c >> @@ -1125,14 +1125,14 @@ void prbuf(register char *s, register int n) >> #ifdef HAVE_WIDECHAR >> { >> wchar_t wc; >> - size_t mblength; >> + ssize_t mblength; >> mbstate_t mbstate; >> memset(&mbstate, '\0', sizeof(mbstate_t)); >> s--; >> n++; >> mblength = mbrtowc(&wc, s, n, &mbstate); >> - if (mblength == (size_t)-2 >> - || mblength == (size_t)-1) >> + if (mblength == -2 >> + || mblength == -1) > > Really? (size_t) -1 and (size_t) -2 are by libc API defined return > codes. It would be better to keep it in code. In that case moving the mbrtowc() to a small function that is ASAN blacklisted sounds like a right thing to do. -- Sami Kerola http://www.iki.fi/kerolasa/ -- To unsubscribe from this list: send the line "unsubscribe util-linux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html