From 0f55e4b727694c0c926ef0979f11b438edccc675 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Thu, 10 Sep 2015 06:37:55 -0700 Subject: Don't pass char to function. * parser.c (provide_completions): Cast char argument to unsigned char in call to isalnum. The data comes from user input, which could be any byte. The char type may be signed (and usually is) and so may take on negative values. --- parser.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/parser.c b/parser.c index c6f030f8..82cdaa21 100644 --- a/parser.c +++ b/parser.c @@ -430,7 +430,8 @@ static void provide_completions(const char *data, if (!ptr) return; - while ((isalnum(*ptr) || strchr(gly, *ptr)) && (sym = ptr) && ptr > data) + while ((isalnum((unsigned char) *ptr) || strchr(gly, *ptr)) && + (sym = ptr) && ptr > data) ptr--; if (!sym) @@ -444,7 +445,8 @@ static void provide_completions(const char *data, } else { ptr--; - while ((isalnum(*ptr) || strchr(gly, *ptr)) && (pkg = ptr) && ptr > data) + while ((isalnum((unsigned char) *ptr) || strchr(gly, *ptr)) && + (pkg = ptr) && ptr > data) ptr--; if (!pkg) -- cgit v1.2.3