From 349362cc207c96bbf31f503db989f0289c13c05d Mon Sep 17 00:00:00 2001 From: Jonathan Nieder Date: Mon, 4 Oct 2010 04:09:17 -0500 Subject: xdiff: cast arguments for ctype functions to unsigned char MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The ctype functions isspace(), isalnum(), et al take an integer argument representing an unsigned character, or -1 for EOF. On platforms with a signed char, it is unsafe to pass a char to them without casting it to unsigned char first. Most of git is already shielded against this by the ctype implementation in git-compat-util.h, but xdiff, which uses libc ctype.h, ought to be fixed. Noticed-by: der Mouse Reported-by: Ævar Arnfjörð Bjarmason Signed-off-by: Jonathan Nieder Signed-off-by: Junio C Hamano --- xdiff/xmerge.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'xdiff/xmerge.c') diff --git a/xdiff/xmerge.c b/xdiff/xmerge.c index 6d6fc1bc5e..9e13b25abc 100644 --- a/xdiff/xmerge.c +++ b/xdiff/xmerge.c @@ -336,7 +336,7 @@ static int xdl_refine_conflicts(xdfenv_t *xe1, xdfenv_t *xe2, xdmerge_t *m, static int line_contains_alnum(const char *ptr, long size) { while (size--) - if (isalnum(*(ptr++))) + if (isalnum((unsigned char)*(ptr++))) return 1; return 0; } -- cgit v1.2.3