From c86df7778fd1d93a74892f36fa6fec14d3d20707 Mon Sep 17 00:00:00 2001
From: Amar Tumballi <amarts@redhat.com>
Date: Wed, 10 Oct 2018 10:42:53 +0530
Subject: [PATCH 400/404] all: fix the format warnings due to strict check
In the fix for CVE listed below, we added a strict format check,
and that has revealed multiple issues with the formats. Fixed all
warnings introduced because of the fix.
Updates: CVE-2018-14661
BUG: 1637084
Change-Id: Ic1702b264fa4c8ad23d3836fcd1d6dc2ca8bc4b1
Signed-off-by: Amar Tumballi <amarts@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/152352
Reviewed-by: Xavi Hernandez <xhernandez@redhat.com>
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
---
libglusterfs/src/fd.c | 2 +-
libglusterfs/src/inode.c | 2 +-
libglusterfs/src/iobuf.c | 8 ++++----
libglusterfs/src/stack.c | 6 +++---
libglusterfs/src/statedump.c | 11 ++++++-----
rpc/rpc-lib/src/rpc-drc.c | 4 ++--
xlators/cluster/dht/src/dht-shared.c | 2 +-
xlators/cluster/stripe/src/stripe.c | 4 ++--
xlators/debug/trace/src/trace.c | 2 +-
xlators/features/quota/src/quota.c | 2 +-
xlators/mount/fuse/src/fuse-bridge.c | 6 +++---
xlators/performance/io-cache/src/io-cache.c | 4 ++--
xlators/performance/nl-cache/src/nl-cache-helper.c | 6 +++---
xlators/performance/open-behind/src/open-behind.c | 2 +-
xlators/performance/quick-read/src/quick-read.c | 4 ++--
xlators/performance/read-ahead/src/read-ahead.c | 6 ++----
xlators/performance/write-behind/src/write-behind.c | 6 +++---
xlators/protocol/client/src/client.c | 2 +-
xlators/storage/posix/src/posix.c | 10 +++++-----
19 files changed, 44 insertions(+), 45 deletions(-)
diff --git a/libglusterfs/src/fd.c b/libglusterfs/src/fd.c
index 27c8e13..ed80bd3 100644
--- a/libglusterfs/src/fd.c
+++ b/libglusterfs/src/fd.c
@@ -1050,7 +1050,7 @@ fd_dump (fd_t *fd, char *prefix)
return;
memset(key, 0, sizeof(key));
- gf_proc_dump_write("pid", "%llu", fd->pid);
+ gf_proc_dump_write("pid", "%" PRIu64, fd->pid);
gf_proc_dump_write("refcount", "%d", fd->refcount);
gf_proc_dump_write("flags", "%d", fd->flags);
diff --git a/libglusterfs/src/inode.c b/libglusterfs/src/inode.c
index 1bc05a4..29d3c8f 100644
--- a/libglusterfs/src/inode.c
+++ b/libglusterfs/src/inode.c
@@ -2415,7 +2415,7 @@ inode_table_dump (inode_table_t *itable, char *prefix)
}
gf_proc_dump_build_key(key, prefix, "hashsize");
- gf_proc_dump_write(key, "%d", itable->hashsize);
+ gf_proc_dump_write(key, "%"GF_PRI_SIZET, itable->hashsize);
gf_proc_dump_build_key(key, prefix, "name");
gf_proc_dump_write(key, "%s", itable->name);
diff --git a/libglusterfs/src/iobuf.c b/libglusterfs/src/iobuf.c
index f6b8558..a22dbd3 100644
--- a/libglusterfs/src/iobuf.c
+++ b/libglusterfs/src/iobuf.c
@@ -1169,7 +1169,7 @@ iobuf_arena_info_dump (struct iobuf_arena *iobuf_arena, const char *key_prefix)
gf_proc_dump_build_key(key, key_prefix, "alloc_cnt");
gf_proc_dump_write(key, "%"PRIu64, iobuf_arena->alloc_cnt);
gf_proc_dump_build_key(key, key_prefix, "max_active");
- gf_proc_dump_write(key, "%"PRIu64, iobuf_arena->max_active);
+ gf_proc_dump_write(key, "%d", iobuf_arena->max_active);
gf_proc_dump_build_key(key, key_prefix, "page_size");
gf_proc_dump_write(key, "%"PRIu64, iobuf_arena->page_size);
list_for_each_entry (trav, &iobuf_arena->active.list, list) {
@@ -1202,9 +1202,9 @@ iobuf_stats_dump (struct iobuf_pool *iobuf_pool)
}
gf_proc_dump_add_section("iobuf.global");
gf_proc_dump_write("iobuf_pool","%p", iobuf_pool);
- gf_proc_dump_write("iobuf_pool.default_page_size", "%d",
- iobuf_pool->default_page_size);
- gf_proc_dump_write("iobuf_pool.arena_size", "%d",
+ gf_proc_dump_write("iobuf_pool.default_page_size", "%" GF_PRI_SIZET,
+ iobuf_pool->default_page_size);
+ gf_proc_dump_write("iobuf_pool.arena_size", "%" GF_PRI_SIZET,
iobuf_pool->arena_size);
gf_proc_dump_write("iobuf_pool.arena_cnt", "%d",
iobuf_pool->arena_cnt);
diff --git a/libglusterfs/src/stack.c b/libglusterfs/src/stack.c
index d64ac8a..6fbd2bb 100644
--- a/libglusterfs/src/stack.c
+++ b/libglusterfs/src/stack.c
@@ -144,7 +144,7 @@ gf_proc_dump_call_frame (call_frame_t *call_frame, const char *key_buf,...)
out:
if (ret) {
gf_proc_dump_write("Unable to dump the frame information",
- "(Lock acquisition failed) %p", my_frame);
+ "(Lock acquisition failed)");
return;
}
}
@@ -183,7 +183,7 @@ gf_proc_dump_call_stack (call_stack_t *call_stack, const char *key_buf,...)
gf_proc_dump_write("uid", "%d", call_stack->uid);
gf_proc_dump_write("gid", "%d", call_stack->gid);
gf_proc_dump_write("pid", "%d", call_stack->pid);
- gf_proc_dump_write("unique", "%Ld", call_stack->unique);
+ gf_proc_dump_write("unique", "%" PRIu64, call_stack->unique);
gf_proc_dump_write("lk-owner", "%s", lkowner_utoa (&call_stack->lk_owner));
if (call_stack->type == GF_OP_TYPE_FOP)
@@ -222,7 +222,7 @@ gf_proc_dump_pending_frames (call_pool_t *call_pool)
gf_proc_dump_add_section("global.callpool");
section_added = _gf_true;
gf_proc_dump_write("callpool_address","%p", call_pool);
- gf_proc_dump_write("callpool.cnt","%d", call_pool->cnt);
+ gf_proc_dump_write("callpool.cnt", "%" PRId64, call_pool->cnt);
list_for_each_entry (trav, &call_pool->all_frames, all_frames) {
diff --git a/libglusterfs/src/statedump.c b/libglusterfs/src/statedump.c
index e9ecef5..a123adb 100644
--- a/libglusterfs/src/statedump.c
+++ b/libglusterfs/src/statedump.c
@@ -240,10 +240,11 @@ gf_proc_dump_xlator_mem_info (xlator_t *xl)
gf_proc_dump_add_section ("%s.%s - usage-type %s memusage",
xl->type, xl->name,
xl->mem_acct->rec[i].typestr);
- gf_proc_dump_write ("size", "%u", xl->mem_acct->rec[i].size);
+ gf_proc_dump_write ("size", "%" GF_PRI_SIZET,
+ xl->mem_acct->rec[i].size);
gf_proc_dump_write ("num_allocs", "%u",
xl->mem_acct->rec[i].num_allocs);
- gf_proc_dump_write ("max_size", "%u",
+ gf_proc_dump_write ("max_size", "%" GF_PRI_SIZET,
xl->mem_acct->rec[i].max_size);
gf_proc_dump_write ("max_num_allocs", "%u",
xl->mem_acct->rec[i].max_num_allocs);
@@ -275,9 +276,9 @@ gf_proc_dump_xlator_mem_info_only_in_use (xlator_t *xl)
gf_proc_dump_add_section ("%s.%s - usage-type %d", xl->type,
xl->name,i);
- gf_proc_dump_write ("size", "%u",
+ gf_proc_dump_write ("size", "%" GF_PRI_SIZET,
xl->mem_acct->rec[i].size);
- gf_proc_dump_write ("max_size", "%u",
+ gf_proc_dump_write ("max_size", "%" GF_PRI_SIZET,
xl->mem_acct->rec[i].max_size);
gf_proc_dump_write ("num_allocs", "%u",
xl->mem_acct->rec[i].num_allocs);
@@ -475,7 +476,7 @@ gf_proc_dump_dict_info (glusterfs_ctx_t *ctx)
total_dicts = GF_ATOMIC_GET (ctx->stats.total_dicts_used);
total_pairs = GF_ATOMIC_GET (ctx->stats.total_pairs_used);
- gf_proc_dump_write ("max-pairs-per-dict", "%u",
+ gf_proc_dump_write ("max-pairs-per-dict", "%" PRIu64,
GF_ATOMIC_GET (ctx->stats.max_dict_pairs));
gf_proc_dump_write ("total-pairs-used", "%lu", total_pairs);
gf_proc_dump_write ("total-dicts-used", "%lu", total_dicts);
diff --git a/rpc/rpc-lib/src/rpc-drc.c b/rpc/rpc-lib/src/rpc-drc.c
index fb7d2f1..f597432 100644
--- a/rpc/rpc-lib/src/rpc-drc.c
+++ b/rpc/rpc-lib/src/rpc-drc.c
@@ -565,10 +565,10 @@ rpcsvc_drc_priv (rpcsvc_drc_globals_t *drc)
gf_proc_dump_write (key, "%d", drc->lru_factor);
gf_proc_dump_build_key (key, "drc", "duplicate_request_count");
- gf_proc_dump_write (key, "%d", drc->cache_hits);
+ gf_proc_dump_write (key, "%" PRIu64, drc->cache_hits);
gf_proc_dump_build_key (key, "drc", "in_transit_duplicate_requests");
- gf_proc_dump_write (key, "%d", drc->intransit_hits);
+ gf_proc_dump_write (key, "%" PRIu64, drc->intransit_hits);
list_for_each_entry (client, &drc->clients_head, client_list) {
gf_proc_dump_build_key (key, "client", "%d.ip-address", i);
diff --git a/xlators/cluster/dht/src/dht-shared.c b/xlators/cluster/dht/src/dht-shared.c
index 2f0d8ce..4aef8ff 100644
--- a/xlators/cluster/dht/src/dht-shared.c
+++ b/xlators/cluster/dht/src/dht-shared.c
@@ -179,7 +179,7 @@ dht_priv_dump (xlator_t *this)
conf->du_stats[i].avail_inodes);
snprintf (key, sizeof (key), "du_stats[%d].log", i);
- gf_proc_dump_write (key, "%lu",
+ gf_proc_dump_write (key, "%" PRIu32,
conf->du_stats[i].log);
}
}
diff --git a/xlators/cluster/stripe/src/stripe.c b/xlators/cluster/stripe/src/stripe.c
index 67006ab..6b32f7f 100644
--- a/xlators/cluster/stripe/src/stripe.c
+++ b/xlators/cluster/stripe/src/stripe.c
@@ -5688,12 +5688,12 @@ stripe_priv_dump (xlator_t *this)
options = priv->pattern;
while (options != NULL) {
gf_proc_dump_write ("path_pattern", "%s", priv->pattern->path_pattern);
- gf_proc_dump_write ("options_block_size", "%ul", options->block_size);
+ gf_proc_dump_write ("options_block_size", "%" PRIu64, options->block_size);
options = options->next;
}
- gf_proc_dump_write ("block_size", "%ul", priv->block_size);
+ gf_proc_dump_write ("block_size", "%" PRIu64, priv->block_size);
gf_proc_dump_write ("nodes-down", "%d", priv->nodes_down);
gf_proc_dump_write ("first-child_down", "%d", priv->first_child_down);
gf_proc_dump_write ("xattr_supported", "%d", priv->xattr_supported);
diff --git a/xlators/debug/trace/src/trace.c b/xlators/debug/trace/src/trace.c
index 34ac4ca..602e130 100644
--- a/xlators/debug/trace/src/trace.c
+++ b/xlators/debug/trace/src/trace.c
@@ -68,7 +68,7 @@ dump_history_trace (circular_buffer_t *cb, void *data)
".%"GF_PRI_SUSECONDS, cb->tv.tv_usec);
gf_proc_dump_write ("TIME", "%s", timestr);
- gf_proc_dump_write ("FOP", "%s\n", cb->data);
+ gf_proc_dump_write ("FOP", "%s\n", (char *)cb->data);
return 0;
}
diff --git a/xlators/features/quota/src/quota.c b/xlators/features/quota/src/quota.c
index 3d68ffa..71068d3 100644
--- a/xlators/features/quota/src/quota.c
+++ b/xlators/features/quota/src/quota.c
@@ -5224,7 +5224,7 @@ quota_priv_dump (xlator_t *this)
if (!priv)
goto out;
- gf_proc_dump_add_section ("xlators.features.quota.priv", this->name);
+ gf_proc_dump_add_section ("xlators.features.quota.priv");
ret = TRY_LOCK (&priv->lock);
if (ret)
diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c
index 1c4f4e4..fbb4c53 100644
--- a/xlators/mount/fuse/src/fuse-bridge.c
+++ b/xlators/mount/fuse/src/fuse-bridge.c
@@ -5148,11 +5148,11 @@ fuse_priv_dump (xlator_t *this)
private->proto_minor);
gf_proc_dump_write("volfile", "%s",
private->volfile?private->volfile:"None");
- gf_proc_dump_write("volfile_size", "%d",
+ gf_proc_dump_write("volfile_size", "%" GF_PRI_SIZET,
private->volfile_size);
gf_proc_dump_write("mount_point", "%s",
private->mount_point);
- gf_proc_dump_write("iobuf", "%u",
+ gf_proc_dump_write("iobuf", "%p",
private->iobuf);
gf_proc_dump_write("fuse_thread_started", "%d",
(int)private->fuse_thread_started);
@@ -5208,7 +5208,7 @@ dump_history_fuse (circular_buffer_t *cb, void *data)
".%"GF_PRI_SUSECONDS, cb->tv.tv_usec);
gf_proc_dump_write ("TIME", "%s", timestr);
- gf_proc_dump_write ("message", "%s\n", cb->data);
+ gf_proc_dump_write ("message", "%s\n", (char *)cb->data);
return 0;
}
diff --git a/xlators/performance/io-cache/src/io-cache.c b/xlators/performance/io-cache/src/io-cache.c
index 700d8c2..de44ad2 100644
--- a/xlators/performance/io-cache/src/io-cache.c
+++ b/xlators/performance/io-cache/src/io-cache.c
@@ -2065,8 +2065,8 @@ ioc_priv_dump (xlator_t *this)
gf_proc_dump_write ("cache_used", "%ld", priv->cache_used);
gf_proc_dump_write ("inode_count", "%u", priv->inode_count);
gf_proc_dump_write ("cache_timeout", "%u", priv->cache_timeout);
- gf_proc_dump_write ("min-file-size", "%u", priv->min_file_size);
- gf_proc_dump_write ("max-file-size", "%u", priv->max_file_size);
+ gf_proc_dump_write ("min-file-size", "%" PRIu64, priv->min_file_size);
+ gf_proc_dump_write ("max-file-size", "%" PRIu64, priv->max_file_size);
}
pthread_mutex_unlock (&priv->table_lock);
out:
diff --git a/xlators/performance/nl-cache/src/nl-cache-helper.c b/xlators/performance/nl-cache/src/nl-cache-helper.c
index 583d67b..b6f1a17 100644
--- a/xlators/performance/nl-cache/src/nl-cache-helper.c
+++ b/xlators/performance/nl-cache/src/nl-cache-helper.c
@@ -1192,14 +1192,14 @@ nlc_dump_inodectx (xlator_t *this, inode_t *inode)
gf_proc_dump_write ("state", "%"PRIu64, nlc_ctx->state);
gf_proc_dump_write ("timer", "%p", nlc_ctx->timer);
- gf_proc_dump_write ("cache-time", "%lld", nlc_ctx->cache_time);
+ gf_proc_dump_write ("cache-time", "%" GF_PRI_TIME, nlc_ctx->cache_time);
gf_proc_dump_write ("cache-size", "%zu", nlc_ctx->cache_size);
gf_proc_dump_write ("refd-inodes", "%"PRIu64, nlc_ctx->refd_inodes);
if (IS_PE_VALID (nlc_ctx->state))
list_for_each_entry_safe (pe, tmp, &nlc_ctx->pe, list) {
- gf_proc_dump_write ("pe", "%p, %s", pe,
- pe->inode, pe->name);
+ gf_proc_dump_write ("pe", "%p, %p, %s", (void *)pe,
+ (void *)pe->inode, pe->name);
}
if (IS_NE_VALID (nlc_ctx->state))
diff --git a/xlators/performance/open-behind/src/open-behind.c b/xlators/performance/open-behind/src/open-behind.c
index 2d77f2d..3245c8f 100644
--- a/xlators/performance/open-behind/src/open-behind.c
+++ b/xlators/performance/open-behind/src/open-behind.c
@@ -933,7 +933,7 @@ ob_fdctx_dump (xlator_t *this, fd_t *fd)
gf_proc_dump_write ("open_frame", "%p", ob_fd->open_frame);
if (ob_fd->open_frame)
- gf_proc_dump_write ("open_frame.root.unique", "%p",
+ gf_proc_dump_write ("open_frame.root.unique", "%" PRIu64,
ob_fd->open_frame->root->unique);
gf_proc_dump_write ("loc.path", "%s", ob_fd->loc.path);
diff --git a/xlators/performance/quick-read/src/quick-read.c b/xlators/performance/quick-read/src/quick-read.c
index ca228b8..e377ac3 100644
--- a/xlators/performance/quick-read/src/quick-read.c
+++ b/xlators/performance/quick-read/src/quick-read.c
@@ -796,7 +796,7 @@ qr_priv_dump (xlator_t *this)
gf_proc_dump_add_section ("%s", key_prefix);
- gf_proc_dump_write ("max_file_size", "%d", conf->max_file_size);
+ gf_proc_dump_write ("max_file_size", "%" PRIu64, conf->max_file_size);
gf_proc_dump_write ("cache_timeout", "%d", conf->cache_timeout);
if (!table) {
@@ -811,7 +811,7 @@ qr_priv_dump (xlator_t *this)
}
gf_proc_dump_write ("total_files_cached", "%d", file_count);
- gf_proc_dump_write ("total_cache_used", "%d", total_size);
+ gf_proc_dump_write ("total_cache_used", "%" PRIu64, total_size);
out:
return 0;
diff --git a/xlators/performance/read-ahead/src/read-ahead.c b/xlators/performance/read-ahead/src/read-ahead.c
index 74ddf49..e02ca9f 100644
--- a/xlators/performance/read-ahead/src/read-ahead.c
+++ b/xlators/performance/read-ahead/src/read-ahead.c
@@ -808,7 +808,6 @@ ra_fdctx_dump (xlator_t *this, fd_t *fd)
int32_t ret = 0, i = 0;
uint64_t tmp_file = 0;
char *path = NULL;
- char key[GF_DUMP_MAX_BUF_LEN] = {0, };
char key_prefix[GF_DUMP_MAX_BUF_LEN] = {0, };
fd_ctx_get (fd, this, &tmp_file);
@@ -849,8 +848,7 @@ ra_fdctx_dump (xlator_t *this, fd_t *fd)
for (page = file->pages.next; page != &file->pages;
page = page->next) {
- sprintf (key, "page[%d]", i);
- gf_proc_dump_write (key, "%p", page[i++]);
+ gf_proc_dump_write ("page", "%d: %p", i++, (void *)page);
ra_page_dump (page);
}
@@ -1075,7 +1073,7 @@ ra_priv_dump (xlator_t *this)
if (ret)
goto out;
{
- gf_proc_dump_write ("page_size", "%d", conf->page_size);
+ gf_proc_dump_write ("page_size", "%" PRIu64, conf->page_size);
gf_proc_dump_write ("page_count", "%d", conf->page_count);
gf_proc_dump_write ("force_atime_update", "%d",
conf->force_atime_update);
diff --git a/xlators/performance/write-behind/src/write-behind.c b/xlators/performance/write-behind/src/write-behind.c
index ef02e18..d655843 100644
--- a/xlators/performance/write-behind/src/write-behind.c
+++ b/xlators/performance/write-behind/src/write-behind.c
@@ -2765,8 +2765,8 @@ wb_priv_dump (xlator_t *this)
gf_proc_dump_add_section ("%s", key_prefix);
- gf_proc_dump_write ("aggregate_size", "%d", conf->aggregate_size);
- gf_proc_dump_write ("window_size", "%d", conf->window_size);
+ gf_proc_dump_write ("aggregate_size", "%" PRIu64, conf->aggregate_size);
+ gf_proc_dump_write ("window_size", "%" PRIu64, conf->window_size);
gf_proc_dump_write ("flush_behind", "%d", conf->flush_behind);
gf_proc_dump_write ("trickling_writes", "%d", conf->trickling_writes);
@@ -2798,7 +2798,7 @@ __wb_dump_requests (struct list_head *head, char *prefix)
else
gf_proc_dump_write ("wound", "no");
- gf_proc_dump_write ("generation-number", "%d", req->gen);
+ gf_proc_dump_write ("generation-number", "%" PRIu64, req->gen);
gf_proc_dump_write ("req->op_ret", "%d", req->op_ret);
gf_proc_dump_write ("req->op_errno", "%d", req->op_errno);
diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c
index 674f1aa..1e69977 100644
--- a/xlators/protocol/client/src/client.c
+++ b/xlators/protocol/client/src/client.c
@@ -2859,7 +2859,7 @@ client_priv_dump (xlator_t *this)
list_for_each_entry(tmp, &conf->saved_fds, sfd_pos) {
sprintf (key, "fd.%d.remote_fd", i);
- gf_proc_dump_write(key, "%d", tmp->remote_fd);
+ gf_proc_dump_write(key, "%" PRId64, tmp->remote_fd);
client_fd_lk_ctx_dump (this, tmp->lk_ctx, i);
i++;
}
diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c
index 7bfe780..e46fe99 100644
--- a/xlators/storage/posix/src/posix.c
+++ b/xlators/storage/posix/src/posix.c
@@ -6970,11 +6970,11 @@ posix_priv (xlator_t *this)
if (!priv)
return 0;
- gf_proc_dump_write("base_path","%s", priv->base_path);
- gf_proc_dump_write("base_path_length","%d", priv->base_path_length);
- gf_proc_dump_write("max_read","%d", priv->read_value);
- gf_proc_dump_write("max_write","%d", priv->write_value);
- gf_proc_dump_write("nr_files","%ld", priv->nr_files);
+ gf_proc_dump_write("base_path", "%s", priv->base_path);
+ gf_proc_dump_write("base_path_length", "%d", priv->base_path_length);
+ gf_proc_dump_write("max_read", "%" PRId64, priv->read_value);
+ gf_proc_dump_write("max_write", "%" PRId64, priv->write_value);
+ gf_proc_dump_write("nr_files", "%ld", priv->nr_files);
return 0;
}
--
1.8.3.1