diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2018-09-12 10:53:03 +0100 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2018-09-12 10:53:03 +0100 |
commit | 442918685bc2e8b4bed75873d85d0d9ea5f23966 (patch) | |
tree | 9ba859b5991d9bd39f012ed0bac7eb71f5dce0b0 | |
parent | bc34cb63ff5b2bc51bcdec7dfc41202dfc34e97f (diff) | |
download | libgit2-442918685bc2e8b4bed75873d85d0d9ea5f23966.tar.gz |
path validation: `char` is not signed by default.signed_char
ARM treats its `char` type as `unsigned type` by default; as a result,
testing a `char` value as being `< 0` is always false. This is a
warning on ARM, which is promoted to an error given our use of
`-Werror`.
Per ISO 9899:199, section "6.2.5 Types":
> The three types char, signed char, and unsigned char are collectively
> called the character types. The implementation shall define char to
> have the same range, representation, and behavior as either signed
> char or unsigned char.
>
...
> Irrespective of the choice made, char is a separate type from the other
> two and is not compatible with either.
-rw-r--r-- | src/path.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/path.c b/src/path.c index e411f356f..c8bc8d402 100644 --- a/src/path.c +++ b/src/path.c @@ -1662,7 +1662,7 @@ GIT_INLINE(bool) verify_dotgit_ntfs_generic(const char *name, size_t len, const saw_tilde = 1; } else if (i >= 6) { return true; - } else if (name[i] < 0) { + } else if ((unsigned char)name[i] > 127) { return true; } else if (git__tolower(name[i]) != shortname_pfix[i]) { return true; |