commit 235eb296149ff1d16accadc37c52542b7f18ef2d
parent 3686ef756a3cde8d58d8c9d8dac48863846ac9dd
Author: Sijmen J. Mulder <ik@sjmulder.nl>
Date: Wed, 24 Jun 2020 01:05:42 +0200
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)
^
Diffstat:
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/nnn.c b/src/nnn.c
@@ -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;
}