On Wed, Aug 21, 2013 at 09:21:47PM +0400, Andrey Chernov wrote: > On 21.08.2013 20:46, Sergey Kandaurov wrote: > > number = strtoumax(buf, &endptr, 0); > > > > + if (number == UINTMAX_MAX && errno == ERANGE) { > > + return (-1); > > + } > > You need to reset errno before strtoumax() call (errno = 0), because any > of previous functions may left it as ERANGE. >
Thanks for pointing out. Does the patch look good? Index: expand_number.c =================================================================== --- expand_number.c (revision 254600) +++ expand_number.c (working copy) @@ -53,6 +53,8 @@ unsigned shift; char *endptr; + errno = 0; + number = strtoumax(buf, &endptr, 0); if (number == UINTMAX_MAX && errno == ERANGE) {
Index: expand_number.c =================================================================== --- expand_number.c (revision 254600) +++ expand_number.c (working copy) @@ -53,6 +53,8 @@ unsigned shift; char *endptr; + errno = 0; + number = strtoumax(buf, &endptr, 0); if (number == UINTMAX_MAX && errno == ERANGE) {
pgpw9GN7ErWQJ.pgp
Description: PGP signature