Commit 50a8fd03673f270a2c1ce5159287efeecfbf1217

Carlos Martín Nieto 2011-08-16T18:16:44

Fix the reference character check for Unicode We need to do an unsigned comparison, as otherwise UTF-8 characters might look like they have the sign bit set and the check will fail. Signed-off-by: Carlos Martín Nieto <cmn@elego.de>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
diff --git a/src/refs.c b/src/refs.c
index 2e54668..ecd53a6 100644
--- a/src/refs.c
+++ b/src/refs.c
@@ -1647,7 +1647,7 @@ void git_repository__refcache_free(git_refcache *refs)
  *****************************************/
 static int check_valid_ref_char(char ch)
 {
-	if (ch <= ' ')
+	if ((unsigned) ch <= ' ')
 		return GIT_ERROR;
 
 	switch (ch) {
@@ -1752,4 +1752,4 @@ int git_reference__normalize_name(char *buffer_out, size_t out_size, const char 
 int git_reference__normalize_name_oid(char *buffer_out, size_t out_size, const char *name)
 {
 	return normalize_name(buffer_out, out_size, name, 1);
-}
\ No newline at end of file
+}