Fix check when char is unsigned (#665)

If char is unsigned (as on ARM) subtracting a larger number would
result in a wrap around, not a negative value.

  src/nnn.c: In function 'readpipe':
  src/nnn.c:4325:11: warning: comparison is always false due to limited
  range of data type [-Wtype-limits]

     if (ctx < 0 || ctx > CTX_MAX)
             ^
This commit is contained in:
Sijmen J. Mulder 2020-06-24 01:05:42 +02:00 committed by GitHub
parent 3686ef756a
commit 235eb29614
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 1 deletions

View File

@ -4326,9 +4326,11 @@ static void readpipe(int fd, char **path, char **lastname, char **lastdir)
if (g_buf[0] == '+')
ctx = (char)(get_free_ctx() + 1);
else if (g_buf[0] < '0')
return;
else {
ctx = g_buf[0] - '0';
if (ctx < 0 || ctx > CTX_MAX)
if (ctx > CTX_MAX)
return;
}