Blame SOURCES/0034-Try-to-deal-with-some-signof-char-signof-uint8_t-mad.patch

4e0e09
From 70e86dc3e48345f1a961aef6173d5126edebf90a Mon Sep 17 00:00:00 2001
4e0e09
From: Peter Jones <pjones@redhat.com>
4e0e09
Date: Mon, 17 Jun 2019 14:47:24 -0400
4e0e09
Subject: [PATCH 34/63] Try to deal with some signof(char) != signof(uint8_t)
4e0e09
 madness.
4e0e09
4e0e09
The 3-sign "char" type in C is so so painful sometimes.  This attempts
4e0e09
to use -funsigned-char to avoid type-casting between (uint8_t *) and
4e0e09
(char *) quite so much.  I'm not sure it'll pay off.  The fact that
4e0e09
"char" is something that's not ever actually the same type as "unsigned
4e0e09
char" or "signed char" is still the absolute worst thing.
4e0e09
4e0e09
Why do we need signed char at all again?
4e0e09
4e0e09
Signed-off-by: Peter Jones <pjones@redhat.com>
4e0e09
---
4e0e09
 Make.defaults                  |  4 +++-
4e0e09
 gcc.specs                      |  4 ++--
4e0e09
 src/dp-acpi.c                  | 11 ++++++-----
4e0e09
 src/dp-hw.c                    |  5 +++--
4e0e09
 src/dp-media.c                 |  2 +-
4e0e09
 src/dp-message.c               | 22 +++++++++++-----------
4e0e09
 src/dp.c                       |  8 +++++---
4e0e09
 src/dp.h                       | 18 ++++++++++--------
4e0e09
 src/export.c                   | 12 ++++++------
4e0e09
 src/include/efivar/efivar-dp.h | 10 ++++++----
4e0e09
 src/include/efivar/efivar.h    |  4 ++--
4e0e09
 src/ucs2.h                     |  6 +++---
4e0e09
 12 files changed, 58 insertions(+), 48 deletions(-)
4e0e09
4e0e09
diff --git a/Make.defaults b/Make.defaults
4e0e09
index 80fd99eba71..36e922f5ba7 100644
4e0e09
--- a/Make.defaults
4e0e09
+++ b/Make.defaults
4e0e09
@@ -31,7 +31,9 @@ PKGS	=
4e0e09
 
4e0e09
 CPPFLAGS += -DLIBEFIVAR_VERSION=$(VERSION)
4e0e09
 
4e0e09
-clang_cflags = -D_GNU_SOURCE -std=gnu11 -Wno-address-of-packed-member
4e0e09
+clang_cflags = -D_GNU_SOURCE -std=gnu11 -Wno-address-of-packed-member \
4e0e09
+	       -funsigned-char -Wall -Wno-nonnull-compare \
4e0e09
+	       -Werror -Wno-error=cpp
4e0e09
 gcc_cflags = -specs=$(TOPDIR)/gcc.specs
4e0e09
 cflags	= $(CFLAGS) -I${TOPDIR}/src/include/ \
4e0e09
 	$(if $(findstring clang,$(CC)),$(clang_cflags),) \
4e0e09
diff --git a/gcc.specs b/gcc.specs
4e0e09
index d06a8e096fc..9d2b145ee6e 100644
4e0e09
--- a/gcc.specs
4e0e09
+++ b/gcc.specs
4e0e09
@@ -2,13 +2,13 @@
4e0e09
 + -D_GNU_SOURCE
4e0e09
 
4e0e09
 *efivar_cpp_options:
4e0e09
- -Werror -Wall -std=gnu11 -Wextra
4e0e09
+ -Wall -Wno-nonnull-compare -Werror -Wno-error=cpp -std=gnu11 -Wextra -funsigned-char
4e0e09
 
4e0e09
 *cpp_options:
4e0e09
 + %(efivar_cpp_options)
4e0e09
 
4e0e09
 *cc1_options:
4e0e09
-+ %(efivar_cpp_options) -Wmaybe-uninitialized -fno-merge-constants -fvisibility=hidden %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}} -grecord-gcc-switches
4e0e09
++ %(efivar_cpp_options) -Wmaybe-uninitialized -fno-merge-constants -funsigned-char -fvisibility=hidden %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}} -grecord-gcc-switches
4e0e09
 
4e0e09
 *self_spec:
4e0e09
 + %{!shared:%{!static:%{!r:-pie}}} %{static:-Wl,-no-fatal-warnings -Wl,-static -static -Wl,-z,relro,-z,now} -grecord-gcc-switches
4e0e09
diff --git a/src/dp-acpi.c b/src/dp-acpi.c
4e0e09
index 2525fdfd073..02ec70eec7a 100644
4e0e09
--- a/src/dp-acpi.c
4e0e09
+++ b/src/dp-acpi.c
4e0e09
@@ -28,7 +28,7 @@
4e0e09
 #include "efivar.h"
4e0e09
 
4e0e09
 static ssize_t
4e0e09
-_format_acpi_adr(char *buf, size_t size,
4e0e09
+_format_acpi_adr(unsigned char *buf, size_t size,
4e0e09
 		 const char *dp_type UNUSED,
4e0e09
 		 const_efidp dp)
4e0e09
 {
4e0e09
@@ -45,9 +45,10 @@ _format_acpi_adr(char *buf, size_t size,
4e0e09
 	format_helper(_format_acpi_adr, buf, size, off, "AcpiAdr", dp)
4e0e09
 
4e0e09
 static ssize_t
4e0e09
-_format_acpi_hid_ex(char *buf, size_t size, const char *dp_type UNUSED,
4e0e09
-		    const_efidp dp,
4e0e09
-		    const char *hidstr, const char *cidstr, const char *uidstr)
4e0e09
+_format_acpi_hid_ex(unsigned char *buf, size_t size,
4e0e09
+		    const char *dp_type UNUSED, const_efidp dp,
4e0e09
+		    const char *hidstr, const char *cidstr,
4e0e09
+		    const char *uidstr)
4e0e09
 {
4e0e09
 	ssize_t off = 0;
4e0e09
 
4e0e09
@@ -98,7 +99,7 @@ _format_acpi_hid_ex(char *buf, size_t size, const char *dp_type UNUSED,
4e0e09
 		      hidstr, cidstr, uidstr)
4e0e09
 
4e0e09
 ssize_t
4e0e09
-_format_acpi_dn(char *buf, size_t size, const_efidp dp)
4e0e09
+_format_acpi_dn(unsigned char *buf, size_t size, const_efidp dp)
4e0e09
 {
4e0e09
 	ssize_t off = 0;
4e0e09
 	const char *hidstr = NULL;
4e0e09
diff --git a/src/dp-hw.c b/src/dp-hw.c
4e0e09
index 1fe0f66e871..28998316d9d 100644
4e0e09
--- a/src/dp-hw.c
4e0e09
+++ b/src/dp-hw.c
4e0e09
@@ -26,7 +26,8 @@
4e0e09
 #include "efivar.h"
4e0e09
 
4e0e09
 ssize_t
4e0e09
-format_edd10_guid(char *buf, size_t size, const char *dp_type, const_efidp dp)
4e0e09
+format_edd10_guid(unsigned char *buf, size_t size,
4e0e09
+		  const char *dp_type, const_efidp dp)
4e0e09
 {
4e0e09
 	ssize_t off = 0;
4e0e09
 	efidp_edd10 const *edd_dp = (efidp_edd10 *)dp;
4e0e09
@@ -36,7 +37,7 @@ format_edd10_guid(char *buf, size_t size, const char *dp_type, const_efidp dp)
4e0e09
 }
4e0e09
 
4e0e09
 ssize_t
4e0e09
-_format_hw_dn(char *buf, size_t size, const_efidp dp)
4e0e09
+_format_hw_dn(unsigned char *buf, size_t size, const_efidp dp)
4e0e09
 {
4e0e09
 	efi_guid_t edd10_guid = EDD10_HARDWARE_VENDOR_PATH_GUID;
4e0e09
 	ssize_t off = 0;
4e0e09
diff --git a/src/dp-media.c b/src/dp-media.c
4e0e09
index 4728c326100..7f5d1c678ce 100644
4e0e09
--- a/src/dp-media.c
4e0e09
+++ b/src/dp-media.c
4e0e09
@@ -28,7 +28,7 @@
4e0e09
 #include "efivar.h"
4e0e09
 
4e0e09
 ssize_t
4e0e09
-_format_media_dn(char *buf, size_t size, const_efidp dp)
4e0e09
+_format_media_dn(unsigned char *buf, size_t size, const_efidp dp)
4e0e09
 {
4e0e09
 	ssize_t off = 0;
4e0e09
 	switch (dp->subtype) {
4e0e09
diff --git a/src/dp-message.c b/src/dp-message.c
4e0e09
index b88f17fb712..d00b2ad5d67 100644
4e0e09
--- a/src/dp-message.c
4e0e09
+++ b/src/dp-message.c
4e0e09
@@ -28,7 +28,7 @@
4e0e09
 #include "efivar.h"
4e0e09
 
4e0e09
 static ssize_t
4e0e09
-format_ipv4_addr_helper(char *buf, size_t size, const char *dp_type,
4e0e09
+format_ipv4_addr_helper(unsigned char *buf, size_t size, const char *dp_type,
4e0e09
 			const uint8_t *ipaddr, int32_t port)
4e0e09
 {
4e0e09
 	ssize_t off = 0;
4e0e09
@@ -40,7 +40,7 @@ format_ipv4_addr_helper(char *buf, size_t size, const char *dp_type,
4e0e09
 }
4e0e09
 
4e0e09
 static ssize_t
4e0e09
-format_ipv6_addr_helper(char *buf, size_t size, const char *dp_type,
4e0e09
+format_ipv6_addr_helper(unsigned char *buf, size_t size, const char *dp_type,
4e0e09
 			const uint8_t *ipaddr, int32_t port)
4e0e09
 {
4e0e09
 	uint16_t *ip = (uint16_t *)ipaddr;
4e0e09
@@ -123,7 +123,7 @@ format_ipv6_addr_helper(char *buf, size_t size, const char *dp_type,
4e0e09
 		      "IPv6", addr, port)
4e0e09
 
4e0e09
 static ssize_t
4e0e09
-format_ip_addr_helper(char *buf, size_t size,
4e0e09
+format_ip_addr_helper(unsigned char *buf, size_t size,
4e0e09
 		      const char *dp_type UNUSED,
4e0e09
 		      int is_ipv6, const efi_ip_addr_t *addr)
4e0e09
 {
4e0e09
@@ -142,7 +142,7 @@ format_ip_addr_helper(char *buf, size_t size,
4e0e09
 		      dp_type, is_ipv6, addr)
4e0e09
 
4e0e09
 static ssize_t
4e0e09
-format_uart(char *buf, size_t size,
4e0e09
+format_uart(unsigned char *buf, size_t size,
4e0e09
 	    const char *dp_type UNUSED,
4e0e09
 	    const_efidp dp)
4e0e09
 {
4e0e09
@@ -162,7 +162,7 @@ format_uart(char *buf, size_t size,
4e0e09
 }
4e0e09
 
4e0e09
 static ssize_t
4e0e09
-format_sas(char *buf, size_t size,
4e0e09
+format_sas(unsigned char *buf, size_t size,
4e0e09
 	   const char *dp_type UNUSED,
4e0e09
 	   const_efidp dp)
4e0e09
 {
4e0e09
@@ -232,7 +232,7 @@ format_sas(char *buf, size_t size,
4e0e09
 	       dp->usb_class.device_protocol)
4e0e09
 
4e0e09
 static ssize_t
4e0e09
-format_usb_class(char *buf, size_t size,
4e0e09
+format_usb_class(unsigned char *buf, size_t size,
4e0e09
 		 const char *dp_type UNUSED,
4e0e09
 		 const_efidp dp)
4e0e09
 {
4e0e09
@@ -312,7 +312,7 @@ format_usb_class(char *buf, size_t size,
4e0e09
 }
4e0e09
 
4e0e09
 ssize_t
4e0e09
-_format_message_dn(char *buf, size_t size, const_efidp dp)
4e0e09
+_format_message_dn(unsigned char *buf, size_t size, const_efidp dp)
4e0e09
 {
4e0e09
 	ssize_t off = 0;
4e0e09
 	switch (dp->subtype) {
4e0e09
@@ -393,7 +393,7 @@ _format_message_dn(char *buf, size_t size, const_efidp dp)
4e0e09
 		struct {
4e0e09
 			efi_guid_t guid;
4e0e09
 			char label[40];
4e0e09
-			ssize_t (*formatter)(char *buf, size_t size,
4e0e09
+			ssize_t (*formatter)(unsigned char *buf, size_t size,
4e0e09
 				const char *dp_type UNUSED,
4e0e09
 				const_efidp dp);
4e0e09
 		} subtypes[] = {
4e0e09
@@ -417,7 +417,7 @@ _format_message_dn(char *buf, size_t size, const_efidp dp)
4e0e09
 			  .label = "" }
4e0e09
 		};
4e0e09
 		char *label = NULL;
4e0e09
-		ssize_t (*formatter)(char *buf, size_t size,
4e0e09
+		ssize_t (*formatter)(unsigned char *buf, size_t size,
4e0e09
 			const char *dp_type UNUSED,
4e0e09
 			const_efidp dp) = NULL;
4e0e09
 
4e0e09
@@ -455,8 +455,8 @@ _format_message_dn(char *buf, size_t size, const_efidp dp)
4e0e09
 			       }
4e0e09
 	case EFIDP_MSG_IPv6: {
4e0e09
 		efidp_ipv6_addr const *a = &dp->ipv6_addr;
4e0e09
-		char *addr0 = NULL;
4e0e09
-		char *addr1 = NULL;
4e0e09
+		unsigned char *addr0 = NULL;
4e0e09
+		unsigned char *addr1 = NULL;
4e0e09
 		ssize_t tmpoff = 0;
4e0e09
 		ssize_t sz;
4e0e09
 
4e0e09
diff --git a/src/dp.c b/src/dp.c
4e0e09
index b6eea74878c..f6a4b2ddafa 100644
4e0e09
--- a/src/dp.c
4e0e09
+++ b/src/dp.c
4e0e09
@@ -298,7 +298,8 @@ efidp_append_instance(const_efidp dp, const_efidp dpi, efidp *out)
4e0e09
 }
4e0e09
 
4e0e09
 ssize_t PUBLIC
4e0e09
-efidp_format_device_path(char *buf, size_t size, const_efidp dp, ssize_t limit)
4e0e09
+efidp_format_device_path(unsigned char *buf, size_t size, const_efidp dp,
4e0e09
+			 ssize_t limit)
4e0e09
 {
4e0e09
 	ssize_t off = 0;
4e0e09
 	int first = 1;
4e0e09
@@ -402,7 +403,8 @@ efidp_format_device_path(char *buf, size_t size, const_efidp dp, ssize_t limit)
4e0e09
 }
4e0e09
 
4e0e09
 ssize_t PUBLIC
4e0e09
-efidp_parse_device_node(char *path UNUSED, efidp out UNUSED, size_t size UNUSED)
4e0e09
+efidp_parse_device_node(unsigned char *path UNUSED,
4e0e09
+			efidp out UNUSED, size_t size UNUSED)
4e0e09
 {
4e0e09
 	efi_error("not implented");
4e0e09
 	errno = -ENOSYS;
4e0e09
@@ -410,7 +412,7 @@ efidp_parse_device_node(char *path UNUSED, efidp out UNUSED, size_t size UNUSED)
4e0e09
 }
4e0e09
 
4e0e09
 ssize_t PUBLIC
4e0e09
-efidp_parse_device_path(char *path UNUSED, efidp out UNUSED,
4e0e09
+efidp_parse_device_path(unsigned char *path UNUSED, efidp out UNUSED,
4e0e09
 			size_t size UNUSED)
4e0e09
 {
4e0e09
 	efi_error("not implented");
4e0e09
diff --git a/src/dp.h b/src/dp.h
4e0e09
index 33a29db0d5d..6609b0d827e 100644
4e0e09
--- a/src/dp.h
4e0e09
+++ b/src/dp.h
4e0e09
@@ -88,8 +88,9 @@
4e0e09
 	})
4e0e09
 
4e0e09
 static inline ssize_t UNUSED
4e0e09
-format_hex_helper(char *buf, size_t size, const char *dp_type, char *separator,
4e0e09
-		  int stride, const void * const addr, const size_t len)
4e0e09
+format_hex_helper(unsigned char *buf, size_t size, const char *dp_type,
4e0e09
+		  char *separator, int stride, const void * const addr,
4e0e09
+		  const size_t len)
4e0e09
 {
4e0e09
 	ssize_t off = 0;
4e0e09
 	for (size_t i = 0; i < len; i++) {
4e0e09
@@ -110,7 +111,8 @@ format_hex_helper(char *buf, size_t size, const char *dp_type, char *separator,
4e0e09
 		      addr, len)
4e0e09
 
4e0e09
 static inline ssize_t UNUSED
4e0e09
-format_vendor_helper(char *buf, size_t size, char *label, const_efidp dp)
4e0e09
+format_vendor_helper(unsigned char *buf, size_t size, char *label,
4e0e09
+		     const_efidp dp)
4e0e09
 {
4e0e09
 	ssize_t off = 0;
4e0e09
 	ssize_t bytes = efidp_node_size(dp)
4e0e09
@@ -157,11 +159,11 @@ format_vendor_helper(char *buf, size_t size, char *label, const_efidp dp)
4e0e09
 		off;							\
4e0e09
 	})
4e0e09
 
4e0e09
-extern ssize_t _format_hw_dn(char *buf, size_t size, const_efidp dp);
4e0e09
-extern ssize_t _format_acpi_dn(char *buf, size_t size, const_efidp dp);
4e0e09
-extern ssize_t _format_message_dn(char *buf, size_t size, const_efidp dp);
4e0e09
-extern ssize_t _format_media_dn(char *buf, size_t size, const_efidp dp);
4e0e09
-extern ssize_t _format_bios_boot_dn(char *buf, size_t size, const_efidp dp);
4e0e09
+extern ssize_t _format_hw_dn(unsigned char *buf, size_t size, const_efidp dp);
4e0e09
+extern ssize_t _format_acpi_dn(unsigned char *buf, size_t size, const_efidp dp);
4e0e09
+extern ssize_t _format_message_dn(unsigned char *buf, size_t size, const_efidp dp);
4e0e09
+extern ssize_t _format_media_dn(unsigned char *buf, size_t size, const_efidp dp);
4e0e09
+extern ssize_t _format_bios_boot_dn(unsigned char *buf, size_t size, const_efidp dp);
4e0e09
 
4e0e09
 #define format_helper_2(name, buf, size, off, dp) ({			\
4e0e09
 		ssize_t _sz;						\
4e0e09
diff --git a/src/export.c b/src/export.c
4e0e09
index 5b11ae883cf..6b78412cce1 100644
4e0e09
--- a/src/export.c
4e0e09
+++ b/src/export.c
4e0e09
@@ -35,7 +35,7 @@
4e0e09
 struct efi_variable {
4e0e09
 	uint64_t attrs;
4e0e09
 	efi_guid_t *guid;
4e0e09
-	char *name;
4e0e09
+	unsigned char *name;
4e0e09
 	uint8_t *data;
4e0e09
 	size_t data_size;
4e0e09
 };
4e0e09
@@ -149,7 +149,7 @@ efi_variable_import(uint8_t *data, size_t size, efi_variable_t **var_out)
4e0e09
 ssize_t NONNULL(1) PUBLIC
4e0e09
 efi_variable_export(efi_variable_t *var, uint8_t *data, size_t size)
4e0e09
 {
4e0e09
-	size_t name_len = strlen(var->name);
4e0e09
+	size_t name_len = strlen((char *)var->name);
4e0e09
 
4e0e09
 	size_t needed = sizeof (uint32_t)		/* magic */
4e0e09
 		      + sizeof (uint32_t)		/* version */
4e0e09
@@ -233,13 +233,13 @@ efi_variable_free(efi_variable_t *var, int free_data)
4e0e09
 }
4e0e09
 
4e0e09
 int NONNULL(1, 2) PUBLIC
4e0e09
-efi_variable_set_name(efi_variable_t *var, char *name)
4e0e09
+efi_variable_set_name(efi_variable_t *var, unsigned char *name)
4e0e09
 {
4e0e09
 	var->name = name;
4e0e09
 	return 0;
4e0e09
 }
4e0e09
 
4e0e09
-char PUBLIC NONNULL(1) *
4e0e09
+unsigned char PUBLIC NONNULL(1) *
4e0e09
 efi_variable_get_name(efi_variable_t *var)
4e0e09
 {
4e0e09
 	if (!var->name) {
4e0e09
@@ -329,10 +329,10 @@ efi_variable_realize(efi_variable_t *var)
4e0e09
 	}
4e0e09
 	uint32_t attrs = var->attrs & ATTRS_MASK;
4e0e09
 	if (attrs & EFI_VARIABLE_APPEND_WRITE) {
4e0e09
-		return efi_append_variable(*var->guid, var->name,
4e0e09
+		return efi_append_variable(*var->guid, (char *)var->name,
4e0e09
 					var->data, var->data_size, attrs);
4e0e09
 	}
4e0e09
-	return efi_set_variable(*var->guid, var->name, var->data,
4e0e09
+	return efi_set_variable(*var->guid, (char *)var->name, var->data,
4e0e09
 				var->data_size, attrs, 0600);
4e0e09
 }
4e0e09
 
4e0e09
diff --git a/src/include/efivar/efivar-dp.h b/src/include/efivar/efivar-dp.h
4e0e09
index 57453548701..706d25bdebd 100644
4e0e09
--- a/src/include/efivar/efivar-dp.h
4e0e09
+++ b/src/include/efivar/efivar-dp.h
4e0e09
@@ -1240,10 +1240,12 @@ efidp_is_valid(const_efidp dp, ssize_t limit)
4e0e09
 #endif
4e0e09
 
4e0e09
 /* and now, printing and parsing */
4e0e09
-extern ssize_t efidp_parse_device_node(char *path, efidp out, size_t size);
4e0e09
-extern ssize_t efidp_parse_device_path(char *path, efidp out, size_t size);
4e0e09
-extern ssize_t efidp_format_device_path(char *buf, size_t size, const_efidp dp,
4e0e09
-				       ssize_t limit);
4e0e09
+extern ssize_t efidp_parse_device_node(unsigned char *path,
4e0e09
+				       efidp out, size_t size);
4e0e09
+extern ssize_t efidp_parse_device_path(unsigned char *path,
4e0e09
+				       efidp out, size_t size);
4e0e09
+extern ssize_t efidp_format_device_path(unsigned char *buf, size_t size,
4e0e09
+					const_efidp dp, ssize_t limit);
4e0e09
 extern ssize_t efidp_make_vendor(uint8_t *buf, ssize_t size, uint8_t type,
4e0e09
 				 uint8_t subtype,  efi_guid_t vendor_guid,
4e0e09
 				 void *data, size_t data_size);
4e0e09
diff --git a/src/include/efivar/efivar.h b/src/include/efivar/efivar.h
4e0e09
index caa4adf056c..729b6fe80f7 100644
4e0e09
--- a/src/include/efivar/efivar.h
4e0e09
+++ b/src/include/efivar/efivar.h
4e0e09
@@ -144,9 +144,9 @@ extern efi_variable_t *efi_variable_alloc(void)
4e0e09
 			__attribute__((__visibility__ ("default")));
4e0e09
 extern void efi_variable_free(efi_variable_t *var, int free_data);
4e0e09
 
4e0e09
-extern int efi_variable_set_name(efi_variable_t *var, char *name)
4e0e09
+extern int efi_variable_set_name(efi_variable_t *var, unsigned char *name)
4e0e09
 			__attribute__((__nonnull__ (1, 2)));
4e0e09
-extern char *efi_variable_get_name(efi_variable_t *var)
4e0e09
+extern unsigned char *efi_variable_get_name(efi_variable_t *var)
4e0e09
 			__attribute__((__visibility__ ("default")))
4e0e09
 			__attribute__((__nonnull__ (1)));
4e0e09
 
4e0e09
diff --git a/src/ucs2.h b/src/ucs2.h
4e0e09
index 176f9ccac57..478de23b23f 100644
4e0e09
--- a/src/ucs2.h
4e0e09
+++ b/src/ucs2.h
4e0e09
@@ -47,7 +47,7 @@ ucs2size(const void *s, ssize_t limit)
4e0e09
 }
4e0e09
 
4e0e09
 static inline size_t UNUSED NONNULL(1)
4e0e09
-utf8len(uint8_t *s, ssize_t limit)
4e0e09
+utf8len(const unsigned char *s, ssize_t limit)
4e0e09
 {
4e0e09
 	ssize_t i, j;
4e0e09
 	for (i = 0, j = 0; i < (limit >= 0 ? limit : i+1) && s[i] != '\0';
4e0e09
@@ -64,7 +64,7 @@ utf8len(uint8_t *s, ssize_t limit)
4e0e09
 }
4e0e09
 
4e0e09
 static inline size_t UNUSED NONNULL(1)
4e0e09
-utf8size(uint8_t *s, ssize_t limit)
4e0e09
+utf8size(const unsigned char *s, ssize_t limit)
4e0e09
 {
4e0e09
 	size_t ret = utf8len(s,limit);
4e0e09
 	if (ret < (limit >= 0 ? (size_t)limit : ret+1))
4e0e09
@@ -129,7 +129,7 @@ ucs2_to_utf8(const void * const voidchars, ssize_t limit)
4e0e09
 }
4e0e09
 
4e0e09
 static inline ssize_t UNUSED NONNULL(4)
4e0e09
-utf8_to_ucs2(void *ucs2void, ssize_t size, int terminate, uint8_t *utf8)
4e0e09
+utf8_to_ucs2(void *ucs2void, ssize_t size, int terminate, const unsigned char *utf8)
4e0e09
 {
4e0e09
 	ssize_t req;
4e0e09
 	ssize_t i, j;
4e0e09
-- 
4e0e09
2.26.2
4e0e09