From: Rich Felker Date: Sat, 19 Oct 2019 01:11:44 +0000 (-0400) Subject: fix return value of ungetc when argument is outside unsigned char range X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=f6ecd0c296181bf6a2a7f54e3406c846500e8e63;p=musl fix return value of ungetc when argument is outside unsigned char range aside from the special value EOF, ungetc is specified to accept and convert values outside the range of unsigned char. conversion takes place automatically as part of assignment when storing into the buffer, but the return value is also required to be the resulting converted value, and this requirement was not satisfied. simplified from patch by Wang Jianjian. --- diff --git a/src/stdio/ungetc.c b/src/stdio/ungetc.c index 180673a4..bc629d4c 100644 --- a/src/stdio/ungetc.c +++ b/src/stdio/ungetc.c @@ -16,5 +16,5 @@ int ungetc(int c, FILE *f) f->flags &= ~F_EOF; FUNLOCK(f); - return c; + return (unsigned char)c; }