From 4b82d97ff80c6df2f056c012aeed7b004c2cc944 Mon Sep 17 00:00:00 2001 From: Andrew Clayton Date: Thu, 22 Aug 2024 20:01:37 +0100 Subject: [PATCH] [WIP] u_char to char manual fixups --- auto/cc/test | 6 ++++++ src/nxt_main_process.c | 2 +- src/nxt_mem_zone.c | 6 +++--- src/nxt_sockaddr.c | 11 ++++++----- src/nxt_websocket_accept.c | 4 ++-- 5 files changed, 18 insertions(+), 11 deletions(-) diff --git a/auto/cc/test b/auto/cc/test index ac4d5f337..1acb21fda 100644 --- a/auto/cc/test +++ b/auto/cc/test @@ -79,6 +79,9 @@ case $NXT_CC_NAME in #NXT_CFLAGS="$NXT_CFLAGS -Wshorten-64-to-32" NXT_CFLAGS="$NXT_CFLAGS -Wwrite-strings" + # OK due to -funsigned-char + NXT_CFLAGS="$NXT_CFLAGS -Wno-char-subscripts" + # -O2 enables -fstrict-aliasing and -fstrict-overflow. #NXT_CFLAGS="$NXT_CFLAGS -O2" NXT_CFLAGS="$NXT_CFLAGS -fno-strict-aliasing" @@ -126,6 +129,9 @@ case $NXT_CC_NAME in # strict-aliasing is always enabled by default in clang NXT_CFLAGS="$NXT_CFLAGS -fno-strict-aliasing" + # OK due to -funsigned-char + NXT_CFLAGS="$NXT_CFLAGS -Wno-char-subscripts" + #NXT_CFLAGS="$NXT_CFLAGS -fomit-frame-pointer" NXT_CFLAGS="$NXT_CFLAGS -Wstrict-overflow=5" diff --git a/src/nxt_main_process.c b/src/nxt_main_process.c index 2a255e046..360db7626 100644 --- a/src/nxt_main_process.c +++ b/src/nxt_main_process.c @@ -534,7 +534,7 @@ nxt_main_start_process_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg) rt = task->thread->runtime; - app_conf->user.start = (u_char*)rt->user_cred.user; + app_conf->user.start = (char *)rt->user_cred.user; app_conf->user.length = nxt_strlen(rt->user_cred.user); ret = nxt_conf_map_object(process->mem_pool, conf, nxt_common_app_conf, diff --git a/src/nxt_mem_zone.c b/src/nxt_mem_zone.c index fee331312..e47bcf496 100644 --- a/src/nxt_mem_zone.c +++ b/src/nxt_mem_zone.c @@ -507,7 +507,7 @@ static void * nxt_mem_zone_alloc_small(nxt_mem_zone_t *zone, nxt_mem_zone_slot_t *slot, size_t size) { - char *p; + uint8_t *p; uint8_t *map; nxt_mem_zone_page_t *page; @@ -822,7 +822,7 @@ static const char * nxt_mem_zone_free_chunk(nxt_mem_zone_t *zone, nxt_mem_zone_page_t *page, void *p) { - char *map; + uint8_t *map; uint32_t size, offset, chunk; nxt_mem_zone_page_t *pg, **ppg; nxt_mem_zone_slot_t *slot; @@ -843,7 +843,7 @@ nxt_mem_zone_free_chunk(nxt_mem_zone_t *zone, nxt_mem_zone_page_t *page, if (nxt_mem_zone_page_bitmap(zone, slot)) { /* A page's chunks bitmap is placed at the start of the page. */ - map = (char *) ((uintptr_t) p & ~((uintptr_t) zone->page_size_mask)); + map = (uint8_t *) ((uintptr_t) p & ~((uintptr_t) zone->page_size_mask)); } else { map = page->u.map; diff --git a/src/nxt_sockaddr.c b/src/nxt_sockaddr.c index 1c56b85b1..65b4312d7 100644 --- a/src/nxt_sockaddr.c +++ b/src/nxt_sockaddr.c @@ -8,7 +8,7 @@ #if (NXT_INET6) -static char *nxt_inet6_ntop(char *addr, char *buf, char *end); +static char *nxt_inet6_ntop(uint8_t *addr, char *buf, char *end); #endif static nxt_sockaddr_t *nxt_sockaddr_unix_parse(nxt_mp_t *mp, nxt_str_t *addr); @@ -432,7 +432,7 @@ nxt_sockaddr_cmp(nxt_sockaddr_t *sa1, nxt_sockaddr_t *sa2) #if (NXT_INET6) static char * -nxt_inet6_ntop(char *addr, char *buf, char *end) +nxt_inet6_ntop(uint8_t *addr, char *buf, char *end) { char *p; size_t zero_groups, last_zero_groups, ipv6_bytes; @@ -823,7 +823,8 @@ nxt_inet_addr(char *buf, size_t length) nxt_int_t nxt_inet6_addr(struct in6_addr *in6_addr, char *buf, size_t length) { - char c, *addr, *zero_start, *ipv4, *dst, *src, *end; + char c, *ipv4, *end; + uint8_t *addr, *zero_start, *src, *dst; nxt_uint_t digit, group, nibbles, groups_left; if (length == 0) { @@ -850,8 +851,8 @@ nxt_inet6_addr(struct in6_addr *in6_addr, char *buf, size_t length) if (nibbles != 0) { ipv4 = buf; - *addr++ = (u_char) (group >> 8); - *addr++ = (u_char) (group & 0xFF); + *addr++ = (uint8_t) (group >> 8); + *addr++ = (uint8_t) (group & 0xFF); groups_left--; if (groups_left != 0) { diff --git a/src/nxt_websocket_accept.c b/src/nxt_websocket_accept.c index 5bce11f13..60b51bcba 100644 --- a/src/nxt_websocket_accept.c +++ b/src/nxt_websocket_accept.c @@ -53,14 +53,14 @@ nxt_websocket_base64_encode(char *d, const uint8_t *s, size_t len) void nxt_websocket_accept(char *accept, const void *key) { - char bin_accept[20]; + uint8_t bin_accept[20]; nxt_sha1_t ctx; static const char accept_guid[] = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; nxt_sha1_init(&ctx); nxt_sha1_update(&ctx, key, 24); nxt_sha1_update(&ctx, accept_guid, nxt_length(accept_guid)); - nxt_sha1_final(bin_accept, &ctx); + nxt_sha1_final((char *)bin_accept, &ctx); nxt_websocket_base64_encode(accept, bin_accept, sizeof(bin_accept)); }