summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/ec/src/ec-combine.c
diff options
context:
space:
mode:
authorXavier Hernandez <xhernandez@datalab.es>2014-09-15 11:57:43 +0200
committerVijay Bellur <vbellur@redhat.com>2014-09-19 12:34:59 -0700
commitb98bfbc93b420ad47ad5008e738923bce683fc98 (patch)
treeaa303b23885688cb9900f75167aee13518b456d9 /xlators/cluster/ec/src/ec-combine.c
parentb8c820be5f1d3ad7f60a2a0c7256081491d79d51 (diff)
ec: Fix some size_t vars to 64 bits even on 32 bits machines
The 64 bits 'trusted.ec.size' extended attribute was incorrectly computed on 32 bits machines due to an overflow on negative numbers. Also changed some potentially dangerous uses of size_t in other places. This is a backport of http://review.gluster.org/8738/ Change-Id: Id76cfe49a2f350e564b5c71d8c8644fb9ce86662 BUG: 1144407 Signed-off-by: Xavier Hernandez <xhernandez@datalab.es> Reviewed-on: http://review.gluster.org/8779 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Dan Lambright <dlambrig@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'xlators/cluster/ec/src/ec-combine.c')
-rw-r--r--xlators/cluster/ec/src/ec-combine.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/xlators/cluster/ec/src/ec-combine.c b/xlators/cluster/ec/src/ec-combine.c
index 02b7e6024fd..0fa5ac068de 100644
--- a/xlators/cluster/ec/src/ec-combine.c
+++ b/xlators/cluster/ec/src/ec-combine.c
@@ -108,7 +108,7 @@ int32_t ec_iatt_combine(struct iatt * dst, struct iatt * src, int32_t count)
void ec_iatt_rebuild(ec_t * ec, struct iatt * iatt, int32_t count,
int32_t answers)
{
- size_t blocks;
+ uint64_t blocks;
while (count-- > 0)
{
@@ -285,11 +285,10 @@ int32_t ec_dict_data_concat(const char * fmt, ec_cbk_data_t * cbk,
int32_t which, char * key, ...)
{
data_t * data[cbk->count];
- size_t len, tmp;
char * str = NULL, * pre = NULL, * sep, * post;
dict_t * dict;
va_list args;
- int32_t i, num, prelen, postlen, seplen;
+ int32_t i, num, len, prelen, postlen, seplen, tmp;
int32_t ret = -1;
num = cbk->count;
@@ -589,7 +588,7 @@ int32_t ec_dict_combine(ec_cbk_data_t * cbk, int32_t which)
int32_t ec_vector_compare(struct iovec * dst_vector, int32_t dst_count,
struct iovec * src_vector, int32_t src_count)
{
- size_t dst_size = 0, src_size = 0;
+ int32_t dst_size = 0, src_size = 0;
if (dst_count > 0)
{