提交 e2e1bb81 编写于 作者: R Rich Felker

fix overflow corner case in strtoul-family functions

incorrect behavior occurred only in cases where the input overflows
unsigned long long, not just the (possibly lower) range limit for the
result type. in this case, processing of the '-' sign character was
not suppressed, and the function returned a value of 1 despite setting
errno to ERANGE.
上级 ec1aed0a
......@@ -83,6 +83,7 @@ unsigned long long __intscan(FILE *f, unsigned base, int pok, unsigned long long
for (; val[c]<base; c=shgetc(f));
errno = ERANGE;
y = lim;
if (lim&1) neg = 0;
}
done:
shunget(f);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册