[klibc] [klibc:master] losetup: Fix char signedness mismatches with <linux/loop.h>

klibc-bot for Ben Hutchings ben at decadent.org.uk
Tue Nov 5 14:42:10 PST 2019


Commit-ID:  8443e57e5ba71e462e31e3b5aad9f7dd1b4736f5
Gitweb:     http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=8443e57e5ba71e462e31e3b5aad9f7dd1b4736f5
Author:     Ben Hutchings <ben at decadent.org.uk>
AuthorDate: Tue, 5 Nov 2019 00:39:53 +0000
Committer:  Ben Hutchings <ben at decadent.org.uk>
CommitDate: Tue, 5 Nov 2019 00:44:32 +0000

[klibc] losetup: Fix char signedness mismatches with <linux/loop.h>

For some reason the kernel's definition of struct loop_info64 defines
string fields as arrays of __u8 (unsigned char) instead of char.  Add
the necessary casts to avoid compiler warnings.

Signed-off-by: Ben Hutchings <ben at decadent.org.uk>

---
 usr/utils/losetup.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/usr/utils/losetup.c b/usr/utils/losetup.c
index ebc6f360..1f50a001 100644
--- a/usr/utils/losetup.c
+++ b/usr/utils/losetup.c
@@ -94,7 +94,7 @@ static int show_loop(char *device)
 
 		if (loopinfo64.lo_encrypt_type ||
 		    loopinfo64.lo_crypt_name[0]) {
-			char *e = loopinfo64.lo_crypt_name;
+			const char *e = (const char *)loopinfo64.lo_crypt_name;
 
 			if (*e == 0 && loopinfo64.lo_encrypt_type == 1)
 				e = "XOR";
@@ -258,14 +258,14 @@ int set_loop(const char *device, const char *file, unsigned long long offset,
 
 	memset(&loopinfo64, 0, sizeof(loopinfo64));
 
-	xstrncpy(loopinfo64.lo_file_name, file, LO_NAME_SIZE);
+	xstrncpy((char *)loopinfo64.lo_file_name, file, LO_NAME_SIZE);
 
 	if (encryption && *encryption) {
 		if (digits_only(encryption)) {
 			loopinfo64.lo_encrypt_type = atoi(encryption);
 		} else {
 			loopinfo64.lo_encrypt_type = LO_CRYPT_CRYPTOAPI;
-			snprintf(loopinfo64.lo_crypt_name, LO_NAME_SIZE,
+			snprintf((char *)loopinfo64.lo_crypt_name, LO_NAME_SIZE,
 				 "%s", encryption);
 		}
 	}
@@ -284,7 +284,7 @@ int set_loop(const char *device, const char *file, unsigned long long offset,
 		pass = xgetpass(pfd, "Password: ");
 	gotpass:
 		memset(loopinfo64.lo_encrypt_key, 0, LO_KEY_SIZE);
-		xstrncpy(loopinfo64.lo_encrypt_key, pass, LO_KEY_SIZE);
+		xstrncpy((char *)loopinfo64.lo_encrypt_key, pass, LO_KEY_SIZE);
 		memset(pass, 0, strlen(pass));
 		loopinfo64.lo_encrypt_key_size = LO_KEY_SIZE;
 	}


More information about the klibc mailing list