diff options
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-utils.c')
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 16 | 
1 files changed, 11 insertions, 5 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index eac220a4d57..d7ab6cda6d1 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -4720,10 +4720,12 @@ glusterd_import_friend_volumes_synctask(void *opaque)      GF_ASSERT(conf);      arg = opaque; +    if (!arg) +        goto out; +      peer_data = dict_new(); -    if (!peer_data) { +    if (!peer_data)          goto out; -    }      ret = dict_unserialize(arg->dict_buf, arg->dictlen, &peer_data);      if (ret) { @@ -4761,10 +4763,11 @@ glusterd_import_friend_volumes_synctask(void *opaque)  out:      if (peer_data)          dict_unref(peer_data); -    if (arg->dict_buf) -        GF_FREE(arg->dict_buf); -    if (arg) +    if (arg) { +        if (arg->dict_buf) +            GF_FREE(arg->dict_buf);          GF_FREE(arg); +    }      gf_msg_debug("glusterd", 0, "Returning with %d", ret);      return ret; @@ -4987,6 +4990,9 @@ glusterd_compare_friend_data(dict_t *peer_data, int32_t *status, char *hostname)      }  out: +    if (ret && arg) { +        GF_FREE(arg); +    }      gf_msg_debug(this->name, 0, "Returning with ret: %d, status: %d", ret,                   *status);      return ret;  | 
