utf8.c: avoid char overflow

In ISO C, char constants must be in the range -128..127. Change the BOM constants to char literals to avoid overflow. Signed-off-by: Beat Bolli <dev+git@drbeat.li> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Beat Bolli committed Jul 9, 2018 at 21:25 UTC 2b647a05d7223beacba076e45b3920a8621d28e7
1 file changed +4 -4
utf8.c
+4 -4
@@ -566,10 +566,10 @@ static int has_bom_prefix(const char *data, size_t len,
566 return data && bom && (len >= bom_len) && !memcmp(data, bom, bom_len);
567 }
568
569 -static const char utf16_be_bom[] = {0xFE, 0xFF};
570 -static const char utf16_le_bom[] = {0xFF, 0xFE};
571 -static const char utf32_be_bom[] = {0x00, 0x00, 0xFE, 0xFF};
572 -static const char utf32_le_bom[] = {0xFF, 0xFE, 0x00, 0x00};
569 +static const char utf16_be_bom[] = {'\xFE', '\xFF'};
570 +static const char utf16_le_bom[] = {'\xFF', '\xFE'};
571 +static const char utf32_be_bom[] = {'\0', '\0', '\xFE', '\xFF'};
572 +static const char utf32_le_bom[] = {'\xFF', '\xFE', '\0', '\0'};
573
574 int has_prohibited_utf_bom(const char *enc, const char *data, size_t len)
575 {