From ce7456b4ccbe3ca7b06c9b50fe59ce7367172c4f Mon Sep 17 00:00:00 2001 From: Allan McRae Date: Mon, 12 Aug 2013 21:09:01 +1000 Subject: Store fgetc output as an int. Bug exposed on ARM when char is unsigned resulting in the comparison to EOF always failing. Signed-off-by: Allan McRae --- src/pacman/pacman.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index 5ce8747b..24fd57f4 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -830,13 +830,15 @@ int main(int argc, char *argv[]) int target_found = 0; size_t current_size = PATH_MAX; char *vdata, *line = malloc(current_size); + int c; /* remove the '-' from the list */ pm_targets = alpm_list_remove_str(pm_targets, "-", &vdata); free(vdata); i = 0; - while((line[i] = (char)fgetc(stdin)) != EOF) { + while((c = fgetc(stdin)) != EOF) { + line[i] = (char)c; if(isspace((unsigned char)line[i])) { /* avoid adding zero length arg when multiple spaces separate args */ if(i > 0) { -- cgit v1.2.3-24-g4f1b