summaryrefslogtreecommitdiff
path: root/src/tr.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>1995-06-12 18:28:24 +0000
committerJim Meyering <jim@meyering.net>1995-06-12 18:28:24 +0000
commitbcee3d43cae34c5732e3beb0fb0f9c7923095b0e (patch)
treef9770d420d9dea709bc89712c80b0bb2bd12b630 /src/tr.c
parentafe762e4e6043d15b97dc56a40ea0df5e598eaf0 (diff)
downloadcoreutils-bcee3d43cae34c5732e3beb0fb0f9c7923095b0e.tar.xz
(non_neg_strtol): Don't compare signed and unsigned.
Diffstat (limited to 'src/tr.c')
-rw-r--r--src/tr.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/tr.c b/src/tr.c
index 8775613fe..474da3e21 100644
--- a/src/tr.c
+++ b/src/tr.c
@@ -871,11 +871,16 @@ non_neg_strtol (s, len, val)
for (i = 0; i < len; i++)
{
- int c = s[i] - '0';
+ unsigned int c;
- if (c >= base || c < 0)
+ if (s[i] < '0')
return 1;
- if (i > 8 && sum > (LONG_MAX - c) / base)
+
+ c = s[i] - '0';
+ if (c >= base)
+ return 1;
+
+ if (sum > (LONG_MAX - c) / base)
return 1;
sum = sum * base + c;
}