[PATCH 3/3] mkfs.cramfs: clean up gcc warnings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Randy Dunlap <randy.dunlap@xxxxxxxxxx>

* clean up code, gcc warnings
  (try compilation with "-Wall -Wp,-D_FORTIFY_SOURCE=2")

Builds cleanly on x86_32 and x86_64.

This was the first set of warnings.  Correcting some of these lead to
other warnings (which are not listed here).

Some of these (signed char/unsigned char/char) could have been fixed in
other ways.  I basically forced all of these to unsigned char.

mkfs.cramfs.c:211: warning: pointer targets in passing argument 2 of 'MD5Update' differ in signedness
mkfs.cramfs.c:336: warning: format '%u' expects type 'unsigned int', but argument 4 has type 'size_t'
mkfs.cramfs.c:355: warning: pointer targets in assignment differ in signedness
mkfs.cramfs.c:448: warning: pointer targets in passing argument 1 of '__builtin___strncpy_chk' differ in signedness
mkfs.cramfs.c:448: warning: pointer targets in passing argument 1 of '__strncpy_ichk' differ in signedness
mkfs.cramfs.c:450: warning: pointer targets in passing argument 1 of '__builtin___strncpy_chk' differ in signedness
mkfs.cramfs.c:450: warning: pointer targets in passing argument 1 of '__strncpy_ichk' differ in signedness
mkfs.cramfs.c:490: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
mkfs.cramfs.c:620: warning: pointer targets in passing argument 1 of 'compress' differ in signedness
mkfs.cramfs.c:620: warning: pointer targets in passing argument 3 of 'compress' differ in signedness
mkfs.cramfs.c:671: warning: pointer targets in passing argument 3 of 'do_compress' differ in signedness
mkfs.cramfs.c:824: warning: format '%Ld' expects type 'long long int', but argument 4 has type 'loff_t'
mkfs.cramfs.c:872: warning: format '%d' expects type 'int', but argument 3 has type 'ssize_t'
mkfs.cramfs.c:880: warning: format '%d' expects type 'int', but argument 3 has type 'ssize_t'
mkfs.cramfs.c:885: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
mkfs.cramfs.c:889: warning: pointer targets in passing argument 2 of 'crc32' differ in signedness
mkfs.cramfs.c:896: warning: format '%Ld' expects type 'long long int', but argument 4 has type 'loff_t'
mkfs.cramfs.c:896: warning: format '%d' expects type 'int', but argument 5 has type 'ssize_t'
mkfs.cramfs.c:909: warning: format '%d' expects type 'int', but argument 4 has type 'ssize_t'
mkfs.cramfs.c:909: warning: format '%d' expects type 'int', but argument 5 has type 'ssize_t'

Signed-off-by: Randy Dunlap <randy.dunlap@xxxxxxxxxx>
---
 disk-utils/mkfs.cramfs.c |   60 +++++++++++++++++++++++------------------------
 1 file changed, 30 insertions(+), 30 deletions(-)

--- util-linux-ng-2.13.orig/disk-utils/mkfs.cramfs.c
+++ util-linux-ng-2.13/disk-utils/mkfs.cramfs.c
@@ -154,17 +154,17 @@ xmalloc (size_t size) {
 	return t;
 }
 
-static char *
+static unsigned char *
 do_mmap(char *path, unsigned int size, unsigned int mode){
 	int fd;
-	char *start;
+	unsigned char *start;
 
 	if (!size)
 		return NULL;
 
 	if (S_ISLNK(mode)) {
 		start = xmalloc(size);
-		if (readlink(path, start, size) < 0) {
+		if (readlink(path, (char *)start, size) < 0) {
 			perror(path);
 			warn_skip = 1;
 			start = NULL;
@@ -190,7 +190,7 @@ do_mmap(char *path, unsigned int size, u
 }
 
 static void
-do_munmap(char *start, unsigned int size, unsigned int mode){
+do_munmap(unsigned char *start, unsigned int size, unsigned int mode){
 	if (S_ISLNK(mode))
 		free(start);
 	else
@@ -201,7 +201,7 @@ do_munmap(char *start, unsigned int size
 static void
 mdfile(struct entry *e) {
 	MD5_CTX ctx;
-	char *start;
+	unsigned char *start;
 
 	start = do_mmap(e->path, e->size, e->mode);
 	if (start == NULL) {
@@ -221,7 +221,7 @@ mdfile(struct entry *e) {
    but just to be sure, do the comparison */
 static int
 identical_file(struct entry *e1, struct entry *e2){
-	char *start1, *start2;
+	unsigned char *start1, *start2;
 	int equal;
 
 	start1 = do_mmap(e1->path, e1->size, e1->mode);
@@ -334,7 +334,7 @@ static unsigned int parse_directory(stru
 		namelen = strlen(dirent->d_name);
 		if (namelen > MAX_INPUT_NAMELEN) {
 			fprintf(stderr,
-				_("Very long (%u bytes) filename `%s' found.\n"
+				_("Very long (%zu bytes) filename `%s' found.\n"
 				  " Please increase MAX_INPUT_NAMELEN in "
 				  "mkcramfs.c and recompile.  Exiting.\n"),
 				namelen, dirent->d_name);
@@ -352,7 +352,7 @@ static unsigned int parse_directory(stru
 			perror(NULL);
 			exit(8);
 		}
-		entry->name = strdup(dirent->d_name);
+		entry->name = (unsigned char *)strdup(dirent->d_name);
 		if (!entry->name) {
 			perror(NULL);
 			exit(8);
@@ -420,7 +420,7 @@ static unsigned int parse_directory(stru
 }
 
 /* Returns sizeof(struct cramfs_super), which includes the root inode. */
-static unsigned int write_superblock(struct entry *root, char *base, int size)
+static unsigned int write_superblock(struct entry *root, unsigned char *base, int size)
 {
 	struct cramfs_super *super = (struct cramfs_super *) base;
 	unsigned int offset = sizeof(struct cramfs_super) + image_length;
@@ -445,9 +445,9 @@ static unsigned int write_superblock(str
 
 	memset(super->name, 0x00, sizeof(super->name));
 	if (opt_name)
-		strncpy(super->name, opt_name, sizeof(super->name));
+		strncpy((char *)super->name, opt_name, sizeof(super->name));
 	else
-		strncpy(super->name, "Compressed", sizeof(super->name));
+		strncpy((char *)super->name, "Compressed", sizeof(super->name));
 
 	super->root.mode = root->mode;
 	super->root.uid = root->uid;
@@ -458,7 +458,7 @@ static unsigned int write_superblock(str
 	return offset;
 }
 
-static void set_data_offset(struct entry *entry, char *base, unsigned long offset)
+static void set_data_offset(struct entry *entry, unsigned char *base, unsigned long offset)
 {
 	struct cramfs_inode *inode = (struct cramfs_inode *) (base + entry->dir_offset);
 	if (offset >= (1 << (2 + CRAMFS_OFFSET_WIDTH))) {
@@ -474,7 +474,7 @@ static void set_data_offset(struct entry
  * entries, using a stack to remember the directories
  * we've seen.
  */
-static unsigned int write_directory_structure(struct entry *entry, char *base, unsigned int offset)
+static unsigned int write_directory_structure(struct entry *entry, unsigned char *base, unsigned int offset)
 {
 	int stack_entries = 0;
 	int stack_size = 64;
@@ -487,7 +487,7 @@ static unsigned int write_directory_stru
 		while (entry) {
 			struct cramfs_inode *inode =
 				(struct cramfs_inode *) (base + offset);
-			size_t len = strlen(entry->name);
+			size_t len = strlen((const char *)entry->name);
 
 			entry->dir_offset = offset;
 
@@ -560,7 +560,7 @@ static unsigned int write_directory_stru
 	return offset;
 }
 
-static int is_zero(char const *begin, unsigned len)
+static int is_zero(unsigned char const *begin, unsigned len)
 {
 	if (opt_holes)
 		/* Returns non-zero iff the first LEN bytes from BEGIN are
@@ -590,12 +590,12 @@ static int is_zero(char const *begin, un
  * have gotten here in the first place.
  */
 static unsigned int
-do_compress(char *base, unsigned int offset, char const *name,
+do_compress(unsigned char *base, unsigned int offset, unsigned char const *name,
 	    char *path, unsigned int size, unsigned int mode)
 {
 	unsigned long original_size, original_offset, new_size, blocks, curr;
 	int change;
-	char *p, *start;
+	Bytef *p, *start;
 
 	/* get uncompressed data */
 	start = do_mmap(path, size, mode);
@@ -611,13 +611,13 @@ do_compress(char *base, unsigned int off
 	total_blocks += blocks;
 
 	do {
-		unsigned long len = 2 * blksize;
-		unsigned int input = size;
+		uLongf len = 2 * blksize;
+		uLongf input = size;
 		if (input > blksize)
 			input = blksize;
 		size -= input;
 		if (!is_zero (p, input)) {
-			compress(base + curr, &len, p, input);
+			compress((Bytef *)(base + curr), &len, p, input);
 			curr += len;
 		}
 		p += input;
@@ -656,7 +656,7 @@ do_compress(char *base, unsigned int off
  * regfile).
  */
 static unsigned int
-write_data(struct entry *entry, char *base, unsigned int offset) {
+write_data(struct entry *entry, unsigned char *base, unsigned int offset) {
 	struct entry *e;
 
 	for (e = entry; e; e = e->next) {
@@ -676,7 +676,7 @@ write_data(struct entry *entry, char *ba
 	return offset;
 }
 
-static unsigned int write_file(char *file, char *base, unsigned int offset)
+static unsigned int write_file(char *file, unsigned char *base, unsigned int offset)
 {
 	int fd;
 	char *buf;
@@ -725,7 +725,7 @@ int main(int argc, char **argv)
 {
 	struct stat st;		/* used twice... */
 	struct entry *root_entry;
-	char *rom_image;
+	unsigned char *rom_image;
 	ssize_t offset, written;
 	int fd;
 	/* initial guess (upper-bound) of required filesystem size */
@@ -825,7 +825,7 @@ int main(int argc, char **argv)
 			_("warning: guestimate of required size (upper bound) "
 			  "is %LdMB, but maximum image size is %uMB.  "
 			  "We might die prematurely.\n"),
-			fslen_ub >> 20,
+			(long long)fslen_ub >> 20,
 			fslen_max >> 20);
 		fslen_ub = fslen_max;
 	}
@@ -869,7 +869,7 @@ int main(int argc, char **argv)
 
 	offset = write_directory_structure(root_entry->child, rom_image, offset);
 	if (verbose)
-		printf(_("Directory data: %d bytes\n"), offset);
+		printf(_("Directory data: %zd bytes\n"), offset);
 
 	offset = write_data(root_entry, rom_image, offset);
 
@@ -877,12 +877,12 @@ int main(int argc, char **argv)
            losetup works. */
 	offset = ((offset - 1) | (blksize - 1)) + 1;
 	if (verbose)
-		printf(_("Everything: %d kilobytes\n"), offset >> 10);
+		printf(_("Everything: %zd kilobytes\n"), offset >> 10);
 
 	/* Write the superblock now that we can fill in all of the fields. */
 	write_superblock(root_entry, rom_image+opt_pad, offset);
 	if (verbose)
-		printf(_("Super block: %d bytes\n"),
+		printf(_("Super block: %zd bytes\n"),
 		       sizeof(struct cramfs_super));
 
 	/* Put the checksum in. */
@@ -895,8 +895,8 @@ int main(int argc, char **argv)
 	if (fslen_ub < offset) {
 		fprintf(stderr,
 			_("not enough space allocated for ROM image "
-			  "(%Ld allocated, %d used)\n"),
-			fslen_ub, offset);
+			  "(%Ld allocated, %zd used)\n"),
+			(long long)fslen_ub, offset);
 		exit(8);
 	}
 
@@ -906,7 +906,7 @@ int main(int argc, char **argv)
 		exit(8);
 	}
 	if (offset != written) {
-		fprintf(stderr, _("ROM image write failed (%d %d)\n"),
+		fprintf(stderr, _("ROM image write failed (%zd %zd)\n"),
 			written, offset);
 		exit(8);
 	}
-
To unsubscribe from this list: send the line "unsubscribe util-linux-ng" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux