aboutsummaryrefslogtreecommitdiff
path: root/xdiff/xmerge.c
diff options
context:
space:
mode:
authorJonathan Nieder <jrnieder@gmail.com>2010-10-04 04:09:17 -0500
committerJunio C Hamano <gitster@pobox.com>2010-10-06 10:46:45 -0700
commit349362cc207c96bbf31f503db989f0289c13c05d (patch)
tree507437c460f5a35b8377b6f821ab448ea1027610 /xdiff/xmerge.c
parent9173912be36c4f967f42f176be767fc5ba3c4077 (diff)
downloadgit-349362cc207c96bbf31f503db989f0289c13c05d.tar.gz
git-349362cc207c96bbf31f503db989f0289c13c05d.tar.xz
xdiff: cast arguments for ctype functions to unsigned char
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 <mouse@Rodents-Montreal.ORG> Reported-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'xdiff/xmerge.c')
-rw-r--r--xdiff/xmerge.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/xdiff/xmerge.c b/xdiff/xmerge.c
index 6d6fc1bc5..9e13b25ab 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;
}