From af8604d5e9826df57aee7aba235d2e77a7e7f8fb Mon Sep 17 00:00:00 2001 From: Ashish Pandey Date: Sat, 4 Nov 2017 19:20:35 +0530 Subject: cluster/dht: Check for NULL before using variable Coverity ID: 245 Check statvfs received as cbk before using it Coverity ID: 228 Check NULL loc before freeing it. Change-Id: I1b153ed5e7b81bcf7033bf710808e95908dcfef4 BUG: 789278 Signed-off-by: Ashish Pandey --- xlators/cluster/dht/src/dht-diskusage.c | 6 +++--- xlators/cluster/dht/src/dht-helper.c | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'xlators/cluster/dht/src') diff --git a/xlators/cluster/dht/src/dht-diskusage.c b/xlators/cluster/dht/src/dht-diskusage.c index 05592154e30..b1de9ff44aa 100644 --- a/xlators/cluster/dht/src/dht-diskusage.c +++ b/xlators/cluster/dht/src/dht-diskusage.c @@ -38,14 +38,14 @@ dht_du_info_cbk (call_frame_t *frame, void *cookie, xlator_t *this, conf = this->private; prev = cookie; - if (op_ret == -1) { + if (op_ret == -1 || !statvfs) { gf_msg (this->name, GF_LOG_WARNING, op_errno, DHT_MSG_GET_DISK_INFO_ERROR, "failed to get disk info from %s", prev->name); goto out; } - if (statvfs && statvfs->f_blocks) { + if (statvfs->f_blocks) { percent = (statvfs->f_bavail * 100) / statvfs->f_blocks; bytes = (statvfs->f_bavail * statvfs->f_frsize); /* @@ -60,7 +60,7 @@ dht_du_info_cbk (call_frame_t *frame, void *cookie, xlator_t *this, chunks = (statvfs->f_blocks + bpc - 1) / bpc; } - if (statvfs && statvfs->f_files) { + if (statvfs->f_files) { percent_inodes = (statvfs->f_ffree * 100) / statvfs->f_files; } else { /* diff --git a/xlators/cluster/dht/src/dht-helper.c b/xlators/cluster/dht/src/dht-helper.c index 5c3d37ad104..0c249f0e84c 100644 --- a/xlators/cluster/dht/src/dht-helper.c +++ b/xlators/cluster/dht/src/dht-helper.c @@ -1158,7 +1158,9 @@ dht_build_child_loc (xlator_t *this, loc_t *child, loc_t *parent, char *name) return 0; err: - loc_wipe (child); + if (child) { + loc_wipe (child); + } return -1; } -- cgit