From 02903916dd004f03290bdf766e02ce73151f7d71 Mon Sep 17 00:00:00 2001 From: Antonio Borneo Date: Thu, 26 Mar 2020 23:35:08 +0100 Subject: [PATCH] flash/nor/nrf5: pass unsigned char to isalnum() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit In newlib, the argument of isalnum() and the similar functions in ctype.h is checked to be either an int or an unsigned char. Using a normal (signed) char triggers a compile time warning warning: array subscript has type ‘char’ [-Wchar-subscripts] Rewrite the function to separate the internal unsigned char operations from the (signed) char parameter. Change-Id: I5f19115f0b2de2b5b35dc07ef4b58a96161268ee Signed-off-by: Antonio Borneo Reported-by: Åke Rehnman Fixes: 5da746fa09 ("flash/nor/nrf5: detect newer devices without HWID table") Reviewed-on: http://openocd.zylin.com/5545 Tested-by: jenkins Reviewed-by: Ake Rehnman --- src/flash/nor/nrf5.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/flash/nor/nrf5.c b/src/flash/nor/nrf5.c index 8422589b84..5bef8487c9 100644 --- a/src/flash/nor/nrf5.c +++ b/src/flash/nor/nrf5.c @@ -570,10 +570,14 @@ static int nrf5_protect(struct flash_bank *bank, int set, int first, int last) static bool nrf5_info_variant_to_str(uint32_t variant, char *bf) { - h_u32_to_be((uint8_t *)bf, variant); - bf[4] = '\0'; - if (isalnum(bf[0]) && isalnum(bf[1]) && isalnum(bf[2]) && isalnum(bf[3])) + uint8_t b[4]; + + h_u32_to_be(b, variant); + if (isalnum(b[0]) && isalnum(b[1]) && isalnum(b[2]) && isalnum(b[3])) { + memcpy(bf, b, 4); + bf[4] = 0; return true; + } strcpy(bf, "xxxx"); return false; -- 2.30.2