From: Francis Dupont Date: Fri, 11 Apr 2014 11:25:49 +0000 (+0200) Subject: fix char sign extension [#35743] X-Git-Tag: v9.10.0rc2~30 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=c80fef792a864f08453128230216fb079a69500b;p=thirdparty%2Fbind9.git fix char sign extension [#35743] --- diff --git a/lib/dns/name.c b/lib/dns/name.c index 62e210eb0f0..4a33e81e53e 100644 --- a/lib/dns/name.c +++ b/lib/dns/name.c @@ -1201,7 +1201,7 @@ dns_name_fromtext(dns_name_t *name, isc_buffer_t *source, count++; CONVERTTOASCII(c); if (downcase) - c = maptolower[(int)c]; + c = maptolower[c & 0xff]; *ndata++ = c; nrem--; nused++; @@ -1225,7 +1225,7 @@ dns_name_fromtext(dns_name_t *name, isc_buffer_t *source, count++; CONVERTTOASCII(c); if (downcase) - c = maptolower[(int)c]; + c = maptolower[c & 0xff]; *ndata++ = c; nrem--; nused++; @@ -1240,7 +1240,7 @@ dns_name_fromtext(dns_name_t *name, isc_buffer_t *source, if (!isdigit(c & 0xff)) return (DNS_R_BADESCAPE); value *= 10; - value += digitvalue[(int)c]; + value += digitvalue[c & 0xff]; digits++; if (digits == 3) { if (value > 255) @@ -1292,7 +1292,7 @@ dns_name_fromtext(dns_name_t *name, isc_buffer_t *source, while (n2 > 0) { c = *label++; if (downcase) - c = maptolower[(int)c]; + c = maptolower[c & 0xff]; *ndata++ = c; n2--; }