tCast isprint() argument to unsigned char - spoon - dwm status utility (2f30 fo… | |
git clone git://src.adamsgaard.dk/spoon | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit 38c784dbf87e6629ec50c4c80c5ee16c834d1f42 | |
parent 6d810a050344c349a02eeeba238ba47f57e2e987 | |
Author: sin <[email protected]> | |
Date: Mon, 29 May 2017 15:34:12 +0100 | |
Cast isprint() argument to unsigned char | |
The type of buf[i] is char. On systems where char is signed it is | |
possible that a negative value other than EOF is passed to isprint(). | |
This in turn invokes undefined behaviour. | |
Diffstat: | |
M file.c | 2 +- | |
1 file changed, 1 insertion(+), 1 deletion(-) | |
--- | |
diff --git a/file.c b/file.c | |
t@@ -42,7 +42,7 @@ fileread(void *arg, char *buf, size_t len) | |
buf[n - 1] = '\0'; | |
/* stop at the first non-printable character */ | |
for (i = 0; i < len; i++) | |
- if (!isprint(buf[i])) | |
+ if (!isprint((unsigned char)buf[i])) | |
buf[i] = '\0'; | |
return 0; | |
} |