Updating gnulib has caused -Wformat-signedness to be enabled. This
has revealed many problems in C format strings. The fixes here fall
into the following main categories:
- Using %d with an unsigned parameter.
- %x and %o expect an unsigned argument.
- uid_t and gid_t are unsigned on Linux. The safe way to print these
is to cast them to uintmax_t and then print then using the %ju
modifier (see
http://stackoverflow.com/a/1401581).
- Using %d to print an enum. Since enums may be either char or int,
I fixed this by casting the enum to int.
- strtol_error & lzma_ret are both unsigned types.
---
builder/pxzcat-c.c | 24 ++++++++++++------------
cat/filesystems.c | 2 +-
cat/ls.c | 5 +++--
daemon/ext2.c | 7 ++++++-
daemon/file.c | 2 +-
daemon/guestfsd.c | 3 ++-
daemon/parted.c | 5 +++--
daemon/proto.c | 14 ++++++++------
daemon/umask.c | 2 +-
daemon/zero.c | 2 +-
diff/diff.c | 7 ++++---
fish/alloc.c | 2 +-
fish/rc.c | 8 ++++----
generator/bindtests.ml | 2 +-
generator/daemon.ml | 4 ++--
generator/fish.ml | 17 +++++++++--------
make-fs/make-fs.c | 2 +-
p2v/main.c | 5 +++--
src/actions-support.c | 10 +++++-----
src/appliance.c | 6 +++---
src/fuse.c | 14 +++++++-------
src/handle.c | 2 +-
src/launch-libvirt.c | 3 ++-
src/launch.c | 2 +-
src/proto.c | 2 +-
test-tool/test-tool.c | 2 +-
26 files changed, 84 insertions(+), 70 deletions(-)
diff --git a/builder/pxzcat-c.c b/builder/pxzcat-c.c
index fb1a865..0c4a4be 100644
--- a/builder/pxzcat-c.c
+++ b/builder/pxzcat-c.c
@@ -298,7 +298,7 @@ parse_indexes (value filenamev, int fd)
/* Does the stream footer look reasonable? */
r = lzma_stream_footer_decode (&footer_flags, footer);
if (r != LZMA_OK) {
- fprintf (stderr, "invalid stream footer - error %d\n", r);
+ fprintf (stderr, "invalid stream footer - error %u\n", r);
caml_invalid_argument ("invalid stream footer");
}
@@ -317,7 +317,7 @@ parse_indexes (value filenamev, int fd)
/* Decode the index. */
r = lzma_index_decoder (&strm, &this_index, UINT64_MAX);
if (r != LZMA_OK) {
- fprintf (stderr, "invalid stream index - error %d\n", r);
+ fprintf (stderr, "invalid stream index - error %u\n", r);
caml_invalid_argument ("invalid stream index");
}
@@ -339,7 +339,7 @@ parse_indexes (value filenamev, int fd)
} while (r == LZMA_OK);
if (r != LZMA_STREAM_END) {
- fprintf (stderr, "could not parse index - error %d\n", r);
+ fprintf (stderr, "could not parse index - error %u\n", r);
caml_invalid_argument ("could not parse index");
}
@@ -356,14 +356,14 @@ parse_indexes (value filenamev, int fd)
r = lzma_stream_header_decode (&header_flags, header);
if (r != LZMA_OK) {
- fprintf (stderr, "invalid stream header - error %d\n", r);
+ fprintf (stderr, "invalid stream header - error %u\n", r);
caml_invalid_argument ("invalid stream header");
}
/* Header and footer of the stream should be equal. */
r = lzma_stream_flags_compare (&header_flags, &footer_flags);
if (r != LZMA_OK) {
- fprintf (stderr, "header and footer of stream are not equal - error
%d\n",
+ fprintf (stderr, "header and footer of stream are not equal - error
%u\n",
r);
caml_invalid_argument ("header and footer of stream are not equal");
}
@@ -371,7 +371,7 @@ parse_indexes (value filenamev, int fd)
/* Store the decoded stream flags in this_index. */
r = lzma_index_stream_flags (this_index, &footer_flags);
if (r != LZMA_OK) {
- fprintf (stderr, "cannot read stream_flags from index - error %d\n", r);
+ fprintf (stderr, "cannot read stream_flags from index - error %u\n", r);
caml_invalid_argument ("cannot read stream_flags from index");
}
@@ -380,14 +380,14 @@ parse_indexes (value filenamev, int fd)
*/
r = lzma_index_stream_padding (this_index, stream_padding);
if (r != LZMA_OK) {
- fprintf (stderr, "cannot set stream_padding in index - error %d\n", r);
+ fprintf (stderr, "cannot set stream_padding in index - error %u\n", r);
caml_invalid_argument ("cannot set stream_padding in index");
}
if (combined_index != NULL) {
r = lzma_index_cat (this_index, combined_index, NULL);
if (r != LZMA_OK) {
- fprintf (stderr, "cannot combine indexes - error %d\n", r);
+ fprintf (stderr, "cannot combine indexes - error %u\n", r);
caml_invalid_argument ("cannot combine indexes");
}
}
@@ -613,7 +613,7 @@ worker_thread (void *vp)
r = lzma_block_header_decode (&block, NULL, header);
if (r != LZMA_OK) {
- fprintf (stderr, "%s: invalid block header (error %d)\n",
+ fprintf (stderr, "%s: invalid block header (error %u)\n",
global->filename, r);
return &state->status;
}
@@ -624,7 +624,7 @@ worker_thread (void *vp)
r = lzma_block_compressed_size (&block, iter.block.unpadded_size);
if (r != LZMA_OK) {
fprintf (stderr,
- "%s: cannot calculate compressed size (error %d)\n",
+ "%s: cannot calculate compressed size (error %u)\n",
global->filename, r);
return &state->status;
}
@@ -635,7 +635,7 @@ worker_thread (void *vp)
/* Read the block data and uncompress it. */
r = lzma_block_decoder (&strm, &block);
if (r != LZMA_OK) {
- fprintf (stderr, "%s: invalid block (error %d)\n", global->filename,
r);
+ fprintf (stderr, "%s: invalid block (error %u)\n", global->filename,
r);
return &state->status;
}
@@ -684,7 +684,7 @@ worker_thread (void *vp)
break;
if (r != LZMA_OK) {
fprintf (stderr,
- "%s: could not parse block data (error %d)\n",
+ "%s: could not parse block data (error %u)\n",
global->filename, r);
return &state->status;
}
diff --git a/cat/filesystems.c b/cat/filesystems.c
index 44defe0..0e64e00 100644
--- a/cat/filesystems.c
+++ b/cat/filesystems.c
@@ -868,7 +868,7 @@ write_row (const char *name, const char *type,
strings[len++] = vfs_label;
if ((columns & COLUMN_MBR)) {
if (mbr_id >= 0) {
- snprintf (mbr_id_str, sizeof mbr_id_str, "%02x", mbr_id);
+ snprintf (mbr_id_str, sizeof mbr_id_str, "%02x", (unsigned) mbr_id);
strings[len++] = mbr_id_str;
} else
strings[len++] = NULL;
diff --git a/cat/ls.c b/cat/ls.c
index 3bced54..987dcef 100644
--- a/cat/ls.c
+++ b/cat/ls.c
@@ -702,7 +702,7 @@ output_int64_perms (int64_t i)
{
next_field ();
/* csv doesn't need escaping */
- if (printf ("%04" PRIo64, i) < 0) {
+ if (printf ("%04" PRIo64, (uint64_t) i) < 0) {
perror ("printf");
exit (EXIT_FAILURE);
}
@@ -774,7 +774,8 @@ output_int64_dev (int64_t i)
next_field ();
/* csv doesn't need escaping */
- if (printf ("%d:%d", major (dev), minor (dev)) < 0) {
+ if (printf ("%ju:%ju",
+ (uintmax_t) major (dev), (uintmax_t) minor (dev)) < 0) {
perror ("printf");
exit (EXIT_FAILURE);
}
diff --git a/daemon/ext2.c b/daemon/ext2.c
index 8ef6d5f..9142a38 100644
--- a/daemon/ext2.c
+++ b/daemon/ext2.c
@@ -780,11 +780,16 @@ do_get_e2generation (const char *filename)
return -1;
}
- if (sscanf (out, "%" SCNu64, &ret) != 1) {
+ if (sscanf (out, "%" SCNi64, &ret) != 1) {
reply_with_error ("cannot parse output from '%s' command: %s",
"lsattr", out);
return -1;
}
+ if (ret < 0) {
+ reply_with_error ("unexpected negative number from '%s' command:
%s",
+ "lsattr", out);
+ return -1;
+ }
return ret;
}
diff --git a/daemon/file.c b/daemon/file.c
index bb3b3c1..c609a01 100644
--- a/daemon/file.c
+++ b/daemon/file.c
@@ -140,7 +140,7 @@ do_chmod (int mode, const char *path)
CHROOT_OUT;
if (r == -1) {
- reply_with_perror ("%s: 0%o", path, mode);
+ reply_with_perror ("%s: 0%o", path, (unsigned) mode);
return -1;
}
diff --git a/daemon/guestfsd.c b/daemon/guestfsd.c
index 7f4b2f2..ee0aa43 100644
--- a/daemon/guestfsd.c
+++ b/daemon/guestfsd.c
@@ -224,7 +224,8 @@ main (int argc, char *argv[])
exit (EXIT_SUCCESS);
default:
- fprintf (stderr, "guestfsd: unexpected command line option 0x%x\n", c);
+ fprintf (stderr, "guestfsd: unexpected command line option 0x%x\n",
+ (unsigned) c);
exit (EXIT_FAILURE);
}
}
diff --git a/daemon/parted.c b/daemon/parted.c
index b516067..cb6c486 100644
--- a/daemon/parted.c
+++ b/daemon/parted.c
@@ -752,7 +752,7 @@ do_part_get_mbr_id (const char *device, int partnum)
udev_settle ();
/* It's printed in hex ... */
- int id;
+ unsigned id;
if (sscanf (out, "%x", &id) != 1) {
reply_with_error ("sfdisk --print-id: cannot parse output: %s", out);
return -1;
@@ -775,7 +775,8 @@ do_part_set_mbr_id (const char *device, int partnum, int idbyte)
snprintf (partnum_str, sizeof partnum_str, "%d", partnum);
char idbyte_str[16];
- snprintf (idbyte_str, sizeof partnum_str, "%x", idbyte); /* NB: hex */
+ /* NB: hex */
+ snprintf (idbyte_str, sizeof partnum_str, "%x", (unsigned) idbyte);
CLEANUP_FREE char *err = NULL;
int r;
diff --git a/daemon/proto.c b/daemon/proto.c
index 7ae8c66..df63bfd 100644
--- a/daemon/proto.c
+++ b/daemon/proto.c
@@ -157,19 +157,20 @@ main_loop (int _sock)
/* Check the version etc. */
if (hdr.prog != GUESTFS_PROGRAM) {
- reply_with_error ("wrong program (%d)", hdr.prog);
+ reply_with_error ("wrong program (%u)", hdr.prog);
goto cont;
}
if (hdr.vers != GUESTFS_PROTOCOL_VERSION) {
- reply_with_error ("wrong protocol version (%d)", hdr.vers);
+ reply_with_error ("wrong protocol version (%u)", hdr.vers);
goto cont;
}
if (hdr.direction != GUESTFS_DIRECTION_CALL) {
- reply_with_error ("unexpected message direction (%d)", hdr.direction);
+ reply_with_error ("unexpected message direction (%d)",
+ (int) hdr.direction);
goto cont;
}
if (hdr.status != GUESTFS_STATUS_OK) {
- reply_with_error ("unexpected message status (%d)", hdr.status);
+ reply_with_error ("unexpected message status (%d)", (int) hdr.status);
goto cont;
}
@@ -444,8 +445,9 @@ receive_file (receive_cb cb, void *opaque)
if (verbose)
fprintf (stderr,
- "guestfsd: receive_file: got chunk: cancel = 0x%x, len = %d, buf =
%p\n",
- chunk.cancel, chunk.data.data_len, chunk.data.data_val);
+ "guestfsd: receive_file: got chunk: cancel = 0x%x, len = %u, buf =
%p\n",
+ (unsigned) chunk.cancel,
+ chunk.data.data_len, chunk.data.data_val);
if (chunk.cancel != 0 && chunk.cancel != 1) {
fprintf (stderr,
diff --git a/daemon/umask.c b/daemon/umask.c
index 52e854e..475c820 100644
--- a/daemon/umask.c
+++ b/daemon/umask.c
@@ -36,7 +36,7 @@ do_umask (int mask)
int r;
if (mask < 0 || mask > 0777) {
- reply_with_error ("0%o: mask negative or out of range", mask);
+ reply_with_error ("0%o: mask negative or out of range", (unsigned) mask);
return -1;
}
diff --git a/daemon/zero.c b/daemon/zero.c
index 505c4bb..d152210 100644
--- a/daemon/zero.c
+++ b/daemon/zero.c
@@ -172,7 +172,7 @@ do_zero_device (const char *device)
if (!is_zero (buf, sizeof buf)) {
r = pwrite (fd, zero_buf, n, pos);
if (r == -1) {
- reply_with_perror ("pwrite: %s (with %" PRId64 " bytes left to
write)",
+ reply_with_perror ("pwrite: %s (with %" PRIu64 " bytes left to
write)",
device, size);
close (fd);
return -1;
diff --git a/diff/diff.c b/diff/diff.c
index 13ecca1..1261439 100644
--- a/diff/diff.c
+++ b/diff/diff.c
@@ -994,7 +994,7 @@ output_binary (const char *s, size_t len)
exit (EXIT_FAILURE);
}
} else {
- if (printf ("\\x%2x", s[i]) < 0) {
+ if (printf ("\\x%2x", (unsigned) s[i]) < 0) {
perror ("printf");
exit (EXIT_FAILURE);
}
@@ -1054,7 +1054,7 @@ output_int64_perms (int64_t i)
{
next_field ();
/* csv doesn't need escaping */
- if (printf ("%04" PRIo64, i) < 0) {
+ if (printf ("%04" PRIo64, (uint64_t) i) < 0) {
perror ("printf");
exit (EXIT_FAILURE);
}
@@ -1126,7 +1126,8 @@ output_int64_dev (int64_t i)
next_field ();
/* csv doesn't need escaping */
- if (printf ("%d:%d", major (dev), minor (dev)) < 0) {
+ if (printf ("%ju:%ju",
+ (uintmax_t) major (dev), (uintmax_t) minor (dev)) < 0) {
perror ("printf");
exit (EXIT_FAILURE);
}
diff --git a/fish/alloc.c b/fish/alloc.c
index b40284a..9f41915 100644
--- a/fish/alloc.c
+++ b/fish/alloc.c
@@ -97,7 +97,7 @@ parse_size (const char *str, off_t *size_rtn)
xerr = xstrtoull (str, NULL, 0, &size, "0kKMGTPEZY");
if (xerr != LONGINT_OK) {
fprintf (stderr,
- _("%s: invalid integer parameter (%s returned %d)\n"),
+ _("%s: invalid integer parameter (%s returned %u)\n"),
"parse_size", "xstrtoull", xerr);
return -1;
}
diff --git a/fish/rc.c b/fish/rc.c
index 9ccd5f3..9b0c9c5 100644
--- a/fish/rc.c
+++ b/fish/rc.c
@@ -40,8 +40,8 @@
/* Because this is a Unix domain socket, the total path length must be
* under 108 bytes.
*/
-#define SOCKET_DIR "/tmp/.guestfish-%d" /* euid */
-#define SOCKET_PATH "/tmp/.guestfish-%d/socket-%d" /* euid, pid */
+#define SOCKET_DIR "/tmp/.guestfish-%ju" /* euid */
+#define SOCKET_PATH "/tmp/.guestfish-%ju/socket-%ju" /* euid, pid */
static void
create_sockdir (void)
@@ -52,7 +52,7 @@ create_sockdir (void)
struct stat statbuf;
/* Create the directory, and ensure it is owned by the user. */
- snprintf (dir, sizeof dir, SOCKET_DIR, euid);
+ snprintf (dir, sizeof dir, SOCKET_DIR, (uintmax_t) euid);
r = mkdir (dir, 0700);
if (r == -1 && errno != EEXIST) {
error:
@@ -79,7 +79,7 @@ create_sockpath (pid_t pid, char *sockpath, size_t len,
create_sockdir ();
- snprintf (sockpath, len, SOCKET_PATH, euid, pid);
+ snprintf (sockpath, len, SOCKET_PATH, (uintmax_t) euid, (uintmax_t) pid);
addr->sun_family = AF_UNIX;
strcpy (addr->sun_path, sockpath);
diff --git a/generator/bindtests.ml b/generator/bindtests.ml
index 9558a74..5358ff1 100644
--- a/generator/bindtests.ml
+++ b/generator/bindtests.ml
@@ -159,7 +159,7 @@ fill_lvm_pv (guestfs_h *g, struct guestfs_lvm_pv *pv, size_t i)
pr " {\n";
pr " size_t i;\n";
pr " for (i = 0; i < %s_size; ++i)\n" n;
- pr " fprintf (fp, \"<%%02x>\", %s[i]);\n" n;
+ pr " fprintf (fp, \"<%%02x>\", (unsigned)
%s[i]);\n" n;
pr " fprintf (fp, \"\\n\");\n";
pr " }\n";
| OptString n -> pr " fprintf (fp, \"%%s\\n\", %s ? %s :
\"null\");\n" n n
diff --git a/generator/daemon.ml b/generator/daemon.ml
index 0c98d14..1825de4 100644
--- a/generator/daemon.ml
+++ b/generator/daemon.ml
@@ -564,12 +564,12 @@ cleanup_free_mountable (mountable_t *mountable)
pr " r->%s[i++] = tok[j];\n" name;
pr " }\n";
| FBytes ->
- pr " if (sscanf (tok, \"%%\"SCNu64, &r->%s) != 1)
{\n" name;
+ pr " if (sscanf (tok, \"%%\" SCNi64, &r->%s) !=
1) {\n" name;
pr " fprintf (stderr, \"%%s: failed to parse size
'%%s' from token %%s\\n\", __func__, tok, \"%s\");\n" name;
pr " return -1;\n";
pr " }\n";
| FInt64 ->
- pr " if (sscanf (tok, \"%%\"SCNi64, &r->%s) != 1)
{\n" name;
+ pr " if (sscanf (tok, \"%%\" SCNi64, &r->%s) !=
1) {\n" name;
pr " fprintf (stderr, \"%%s: failed to parse int
'%%s' from token %%s\\n\", __func__, tok, \"%s\");\n" name;
pr " return -1;\n";
pr " }\n";
diff --git a/generator/fish.ml b/generator/fish.ml
index 05bbdad..6f68e65 100644
--- a/generator/fish.ml
+++ b/generator/fish.ml
@@ -249,10 +249,10 @@ Guestfish will prompt for these separately."
pr "print_%s_list (struct guestfs_%s_list *%ss)\n"
typ typ typ;
pr "{\n";
- pr " unsigned int i;\n";
+ pr " size_t i;\n";
pr "\n";
pr " for (i = 0; i < %ss->len; ++i) {\n" typ;
- pr " printf (\"[%%d] = {\\n\", i);\n";
+ pr " printf (\"[%%zu] = {\\n\", i);\n";
pr " print_%s_indent (&%ss->val[i], \" \");\n" typ
typ;
pr " printf (\"}\\n\");\n";
pr " }\n";
@@ -270,7 +270,7 @@ Guestfish will prompt for these separately."
pr "print_%s_indent (struct guestfs_%s *%s, const char *indent)\n" typ
typ typ;
pr "{\n";
if needs_i then (
- pr " unsigned int i;\n";
+ pr " size_t i;\n";
pr "\n"
);
List.iter (
@@ -288,7 +288,8 @@ Guestfish will prompt for these separately."
pr " if (c_isprint (%s->%s[i]))\n" typ name;
pr " printf (\"%%c\", %s->%s[i]);\n" typ name;
pr " else\n";
- pr " printf (\"\\\\x%%02x\", %s->%s[i]);\n" typ
name;
+ pr " printf (\"\\\\x%%02x\", (unsigned)
%s->%s[i]);\n"
+ typ name;
pr " printf (\"\\n\");\n"
| name, (FUInt64|FBytes) ->
pr " printf (\"%%s%s: %%\" PRIu64 \"\\n\", indent,
%s->%s);\n"
@@ -422,7 +423,7 @@ Guestfish will prompt for these separately."
indent fn expr;
pr "%s if (xerr != LONGINT_OK) {\n" indent;
pr "%s fprintf (stderr,\n" indent;
- pr "%s _(\"%%s: %%s: invalid integer parameter (%%s
returned %%d)\\n\"),\n" indent;
+ pr "%s _(\"%%s: %%s: invalid integer parameter (%%s
returned %%u)\\n\"),\n" indent;
pr "%s cmd, \"%s\", \"%s\", xerr);\n"
indent name fn;
pr "%s goto %s;\n" indent out;
pr "%s }\n" indent;
@@ -585,9 +586,9 @@ Guestfish will prompt for these separately."
| None ->
pr " printf (\"%%d\\n\", r);\n";
| Some FishOutputOctal ->
- pr " printf (\"%%s%%o\\n\", r != 0 ? \"0\" :
\"\", r);\n";
+ pr " printf (\"%%s%%o\\n\", r != 0 ? \"0\" :
\"\", (unsigned) r);\n";
| Some FishOutputHexadecimal ->
- pr " printf (\"%%s%%x\\n\", r != 0 ? \"0x\" :
\"\", r);\n"
+ pr " printf (\"%%s%%x\\n\", r != 0 ? \"0x\" :
\"\", (unsigned) r);\n"
)
| RInt64 _ ->
pr " if (r == -1) goto out;\n";
@@ -598,7 +599,7 @@ Guestfish will prompt for these separately."
| Some FishOutputOctal ->
pr " printf (\"%%s%%\" PRIo64 \"\\n\", r != 0 ?
\"0\" : \"\", r);\n";
| Some FishOutputHexadecimal ->
- pr " printf (\"%%s%%\" PRIx64 \"\\n\", r != 0 ?
\"0x\" : \"\", r);\n"
+ pr " printf (\"%%s%%\" PRIx64 \"\\n\", r != 0 ?
\"0x\" : \"\", (uint64_t) r);\n"
)
| RBool _ ->
pr " if (r == -1) goto out;\n";
diff --git a/make-fs/make-fs.c b/make-fs/make-fs.c
index cbf49d9..980bfeb 100644
--- a/make-fs/make-fs.c
+++ b/make-fs/make-fs.c
@@ -620,7 +620,7 @@ parse_size (const char *str, uint64_t estimate, uint64_t *size_rtn)
xerr = xstrtoull (str, NULL, 0, &size, "0kKMGTPEZY");
if (xerr != LONGINT_OK) {
fprintf (stderr,
- _("%s: %s: invalid size parameter '%s' (%s returned
%d)\n"),
+ _("%s: %s: invalid size parameter '%s' (%s returned
%u)\n"),
guestfs_int_program_name, "parse_size", str,
"xstrtoull", xerr);
return -1;
}
diff --git a/p2v/main.c b/p2v/main.c
index 666faf1..be32e4b 100644
--- a/p2v/main.c
+++ b/p2v/main.c
@@ -312,8 +312,9 @@ partition_parent (dev_t part_dev)
size_t len = 0;
unsigned parent_major, parent_minor;
- if (asprintf (&path, "/sys/dev/block/%d:%d/../dev",
- major (part_dev), minor (part_dev)) == -1) {
+ if (asprintf (&path, "/sys/dev/block/%ju:%ju/../dev",
+ (uintmax_t) major (part_dev),
+ (uintmax_t) minor (part_dev)) == -1) {
perror ("asprintf");
exit (EXIT_FAILURE);
}
diff --git a/src/actions-support.c b/src/actions-support.c
index e671ed8..23b9ba7 100644
--- a/src/actions-support.c
+++ b/src/actions-support.c
@@ -38,25 +38,25 @@ guestfs_int_check_reply_header (guestfs_h *g,
unsigned int proc_nr, unsigned int serial)
{
if (hdr->prog != GUESTFS_PROGRAM) {
- error (g, "wrong program (%d/%d)", hdr->prog, GUESTFS_PROGRAM);
+ error (g, "wrong program (%u/%d)", hdr->prog, GUESTFS_PROGRAM);
return -1;
}
if (hdr->vers != GUESTFS_PROTOCOL_VERSION) {
- error (g, "wrong protocol version (%d/%d)",
+ error (g, "wrong protocol version (%u/%d)",
hdr->vers, GUESTFS_PROTOCOL_VERSION);
return -1;
}
if (hdr->direction != GUESTFS_DIRECTION_REPLY) {
error (g, "unexpected message direction (%d/%d)",
- hdr->direction, GUESTFS_DIRECTION_REPLY);
+ (int) hdr->direction, GUESTFS_DIRECTION_REPLY);
return -1;
}
if (hdr->proc != proc_nr) {
- error (g, "unexpected procedure number (%d/%d)", hdr->proc, proc_nr);
+ error (g, "unexpected procedure number (%d/%u)", (int) hdr->proc,
proc_nr);
return -1;
}
if (hdr->serial != serial) {
- error (g, "unexpected serial (%d/%d)", hdr->serial, serial);
+ error (g, "unexpected serial (%u/%u)", hdr->serial, serial);
return -1;
}
diff --git a/src/appliance.c b/src/appliance.c
index 2167ac3..2645cca 100644
--- a/src/appliance.c
+++ b/src/appliance.c
@@ -229,7 +229,7 @@ build_supermin_appliance (guestfs_h *g,
*/
len = strlen (tmpdir) + 128;
char cachedir[len];
- snprintf (cachedir, len, "%s/.guestfs-%d", tmpdir, uid);
+ snprintf (cachedir, len, "%s/.guestfs-%ju", tmpdir, (uintmax_t) uid);
char lockfile[len];
snprintf (lockfile, len, "%s/lock", cachedir);
char appliancedir[len];
@@ -244,8 +244,8 @@ build_supermin_appliance (guestfs_h *g,
if (lstat (cachedir, &statbuf) == -1)
return 0;
if (statbuf.st_uid != uid) {
- error (g, _("security: cached appliance %s is not owned by UID %d"),
- cachedir, uid);
+ error (g, _("security: cached appliance %s is not owned by UID %ju"),
+ cachedir, (uintmax_t) uid);
return -1;
}
if (!S_ISDIR (statbuf.st_mode)) {
diff --git a/src/fuse.c b/src/fuse.c
index 3fdb1d4..332c1be 100644
--- a/src/fuse.c
+++ b/src/fuse.c
@@ -345,8 +345,8 @@ mount_local_access (const char *path, int mask)
debug (g, "%s: "
"testing access mask%s%s%s%s: "
- "caller UID:GID = %d:%d, "
- "file UID:GID = %d:%d, "
+ "caller UID:GID = %ju:%ju, "
+ "file UID:GID = %ju:%ju, "
"file mode = %o, "
"result = %s",
path,
@@ -354,8 +354,8 @@ mount_local_access (const char *path, int mask)
mask & W_OK ? " W_OK" : "",
mask & X_OK ? " X_OK" : "",
mask == 0 ? " 0" : "",
- fuse->uid, fuse->gid,
- statbuf.st_uid, statbuf.st_gid,
+ (uintmax_t) fuse->uid, (uintmax_t) fuse->gid,
+ (uintmax_t) statbuf.st_uid, (uintmax_t) statbuf.st_gid,
statbuf.st_mode,
ok ? "OK" : "EACCESS");
@@ -402,7 +402,7 @@ mount_local_mknod (const char *path, mode_t mode, dev_t rdev)
{
int r;
DECL_G ();
- DEBUG_CALL ("%s, 0%o, 0x%lx", path, mode, (long) rdev);
+ DEBUG_CALL ("%s, 0%o, 0x%jx", path, mode, (uintmax_t) rdev);
if (g->ml_read_only) return -EROFS;
@@ -548,7 +548,7 @@ mount_local_chown (const char *path, uid_t uid, gid_t gid)
{
int r;
DECL_G ();
- DEBUG_CALL ("%s, %ld, %ld", path, (long) uid, (long) gid);
+ DEBUG_CALL ("%s, %ju, %ju", path, (uintmax_t) uid, (uintmax_t) gid);
if (g->ml_read_only) return -EROFS;
@@ -630,7 +630,7 @@ mount_local_open (const char *path, struct fuse_file_info *fi)
{
int flags = fi->flags & O_ACCMODE;
DECL_G ();
- DEBUG_CALL ("%s, 0%o", path, fi->flags);
+ DEBUG_CALL ("%s, 0%o", path, (unsigned) fi->flags);
if (g->ml_read_only && flags != O_RDONLY)
return -EROFS;
diff --git a/src/handle.c b/src/handle.c
index 51b9572..12c1fb2 100644
--- a/src/handle.c
+++ b/src/handle.c
@@ -336,7 +336,7 @@ guestfs_close (guestfs_h *g)
trace_msg, strlen (trace_msg));
}
- debug (g, "closing guestfs handle %p (state %d)", g, g->state);
+ debug (g, "closing guestfs handle %p (state %d)", g, (int) g->state);
if (g->state != CONFIG)
shutdown_backend (g, 0);
diff --git a/src/launch-libvirt.c b/src/launch-libvirt.c
index f46782c..1c0bfac 100644
--- a/src/launch-libvirt.c
+++ b/src/launch-libvirt.c
@@ -857,7 +857,8 @@ debug_appliance_permissions (guestfs_h *g)
CLEANUP_FREE char *cachedir = guestfs_get_cachedir (g);
CLEANUP_FREE char *appliance = NULL;
- appliance = safe_asprintf (g, "%s/.guestfs-%d", cachedir, geteuid ());
+ appliance = safe_asprintf (g, "%s/.guestfs-%ju",
+ cachedir, (uintmax_t) geteuid ());
guestfs_int_cmd_add_arg (cmd, "ls");
guestfs_int_cmd_add_arg (cmd, "-a");
diff --git a/src/launch.c b/src/launch.c
index fd5479e..343f4ea 100644
--- a/src/launch.c
+++ b/src/launch.c
@@ -86,7 +86,7 @@ guestfs_impl_launch (guestfs_h *g)
debug (g, "launch: tmpdir=%s", g->tmpdir);
debug (g, "launch: umask=0%03o", get_umask (g));
- debug (g, "launch: euid=%d", geteuid ());
+ debug (g, "launch: euid=%ju", (uintmax_t) geteuid ());
}
/* Launch the appliance. */
diff --git a/src/proto.c b/src/proto.c
index 4ddd164..815a4d2 100644
--- a/src/proto.c
+++ b/src/proto.c
@@ -527,7 +527,7 @@ recv_from_daemon (guestfs_h *g, uint32_t *size_rtn, void **buf_rtn)
if (*size_rtn == GUESTFS_LAUNCH_FLAG) {
if (g->state != LAUNCHING)
error (g, _("received magic signature from guestfsd, but in state %d"),
- g->state);
+ (int) g->state);
else {
g->state = READY;
guestfs_int_call_callbacks_void (g, GUESTFS_EVENT_LAUNCH_DONE);
diff --git a/test-tool/test-tool.c b/test-tool/test-tool.c
index f41b8fd..def21e2 100644
--- a/test-tool/test-tool.c
+++ b/test-tool/test-tool.c
@@ -151,7 +151,7 @@ main (int argc, char *argv[])
default:
fprintf (stderr,
- _("libguestfs-test-tool: unexpected command line option
0x%x\n"),
+ _("libguestfs-test-tool: unexpected command line option
0x%d\n"),
c);
exit (EXIT_FAILURE);
}
--
2.3.1