From: Sijmen J. Mulder Date: Tue, 23 Jun 2020 23:05:42 +0000 (+0200) Subject: Fix check when char is unsigned (#665) X-Git-Tag: v3.3~19 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=235eb296149ff1d16accadc37c52542b7f18ef2d;p=nnn.git 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) ^ --- diff --git a/src/nnn.c b/src/nnn.c index a8f82edb..ef20b13d 100644 --- 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; }