From bcee3d43cae34c5732e3beb0fb0f9c7923095b0e Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Mon, 12 Jun 1995 18:28:24 +0000 Subject: (non_neg_strtol): Don't compare signed and unsigned. --- src/tr.c | 11 ++++++++--- 1 file 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; } -- cgit v1.2.3-70-g09d2