From faf9099bb50d4d2c1a9fe8d3232d541b3f68bc58 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Tue, 3 Jan 2012 16:05:51 -0800 Subject: cluster/distribute: dht_aggregate() fix a logic error before xattr comparisons Change-Id: I20f015263bed9851225005d5f41a5d518bd22592 BUG: 769691 Signed-off-by: Harshavardhana Reviewed-on: http://review.gluster.com/2557 Tested-by: Gluster Build System Reviewed-by: Amar Tumballi --- libglusterfs/src/dict.c | 9 ++++++--- xlators/cluster/dht/src/dht-common.c | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/libglusterfs/src/dict.c b/libglusterfs/src/dict.c index 833f117fc..fd9dd1cd7 100644 --- a/libglusterfs/src/dict.c +++ b/libglusterfs/src/dict.c @@ -108,9 +108,12 @@ int32_t is_data_equal (data_t *one, data_t *two) { - /* LOG-TODO */ - if (!one || !two || !one->data || !two->data) - return 1; + if (!one || !two || !one->data || !two->data) { + gf_log_callingfn ("dict", GF_LOG_ERROR, + "input arguments are provided " + "with value data_t as NULL"); + return -1; + } if (one == two) return 1; diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c index fb149e763..16bb2c9cc 100644 --- a/xlators/cluster/dht/src/dht-common.c +++ b/xlators/cluster/dht/src/dht-common.c @@ -75,7 +75,7 @@ dht_aggregate (dict_t *this, char *key, data_t *value, void *data) /* compare user xattrs only */ if (!strncmp (key, "user.", strlen ("user."))) { ret = dict_lookup (dst, key, &data_pair); - if (!ret && data) { + if (!ret && data_pair && value) { ret = is_data_equal (data_pair->value, value); if (!ret) gf_log ("dht", GF_LOG_WARNING, -- cgit