Patchwork ubiformat.c: fix printf(%d, size_t) warning

login
register
mail settings
Submitter Mike Frysinger
Date Dec. 9, 2008, 1:28 p.m.
Message ID <1228829283-27226-1-git-send-email-vapier@gentoo.org>
Download mbox | patch
Permalink /patch/12934/
State Accepted, archived
Commit c918deda83f257d379dc62d36ab176a1b5f5c619
Headers show

Comments

Mike Frysinger - Dec. 9, 2008, 1:28 p.m.
A size_t should be printed using %zu (unsigned size_t) rather than %d.  This
fixes the following warning on my system:
gcc -O2 -Werror -Wall -Iinclude -Isrc -I../../include src/ubiformat.c -c -o ubiformat.o
cc1: warnings being treated as errors
src/ubiformat.c: In function ‘read_all’:
src/ubiformat.c:345: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’
src/ubiformat.c:352: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’
make: *** [ubiformat.o] Error 1

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 ubi-utils/new-utils/src/ubiformat.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Artem Bityutskiy - Dec. 9, 2008, 1:31 p.m.
On Tue, 2008-12-09 at 08:28 -0500, Mike Frysinger wrote:
> A size_t should be printed using %zu (unsigned size_t) rather than %d.  This
> fixes the following warning on my system:
> gcc -O2 -Werror -Wall -Iinclude -Isrc -I../../include src/ubiformat.c -c -o ubiformat.o
> cc1: warnings being treated as errors
> src/ubiformat.c: In function ‘read_all’:
> src/ubiformat.c:345: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’
> src/ubiformat.c:352: error: format ‘%d’ expects type ‘int’, but argument 3 has type ‘size_t’
> make: *** [ubiformat.o] Error 1

Pushed, thanks.

Patch

diff --git a/ubi-utils/new-utils/src/ubiformat.c b/ubi-utils/new-utils/src/ubiformat.c
index fb4f2ee..7a6d1b7 100644
--- a/ubi-utils/new-utils/src/ubiformat.c
+++ b/ubi-utils/new-utils/src/ubiformat.c
@@ -342,14 +342,14 @@  static int read_all(int fd, void *buf, size_t len)
 	while (len > 0) {
 		ssize_t l = read(fd, buf, len);
 		if (l == 0)
-			return errmsg("eof reached; %d bytes remaining", len);
+			return errmsg("eof reached; %zu bytes remaining", len);
 		else if (l > 0) {
 			buf += l;
 			len -= l;
 		} else if (errno == EINTR || errno == EAGAIN)
 			continue;
 		else
-			return sys_errmsg("reading failed; %d bytes remaining", len);
+			return sys_errmsg("reading failed; %zu bytes remaining", len);
 	}
 
 	return 0;