summaryrefslogtreecommitdiffstats
path: root/xlators
diff options
context:
space:
mode:
authorBarak Sason Rofman <bsasonro@redhat.com>2021-01-21 12:52:52 +0200
committerGitHub <noreply@github.com>2021-01-21 12:52:52 +0200
commit6cece6e03239f7e68cd0cb89e5bdff569802cda7 (patch)
tree098b1ad0346aa9fb38ddabd51acacd3432e91e64 /xlators
parentca389d89f3393c05e93ff21db906f0ee73ac89d8 (diff)
downloadglusterfs-6cece6e03239f7e68cd0cb89e5bdff569802cda7.tar.gz
glusterfs-6cece6e03239f7e68cd0cb89e5bdff569802cda7.tar.xz
glusterfs-6cece6e03239f7e68cd0cb89e5bdff569802cda7.zip
glusterd - fixing coverity issues (#1947)
* glusterd - fixing coverity issues - Dereference after null check (CID 1437686) - Dereference null return value (CID 1437687) - A check for the return value of a memory allocation was missing, added it. - A value of a pointer was being dereferenced after a NULL-pointer check. With this change the pointer is no longer dereferenced. Change-Id: I10bf8a2cb08612981dbb788315dad7dbb4efe2cb updates: #1060 Signed-off-by: Barak Sason Rofman <bsasonro@redhat.com>
Diffstat (limited to 'xlators')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-utils.c42
1 files changed, 26 insertions, 16 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
index b14dba040b..962557c04e 100644
--- a/xlators/mgmt/glusterd/src/glusterd-utils.c
+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
@@ -14610,6 +14610,7 @@ glusterd_check_brick_order(dict_t *dict, char *err_str, int32_t type,
glusterd_brickinfo_t *brickinfo = NULL;
addrinfo_list_t *pre_list = NULL;
addrinfo_list_t *pre_list_tmp1 = NULL;
+ addrinfo_list_t *pre_list_tmp2 = NULL;
int count = 0;
const char failed_string[2048] =
@@ -14626,6 +14627,11 @@ glusterd_check_brick_order(dict_t *dict, char *err_str, int32_t type,
"behavior. ";
ai_list = MALLOC(sizeof(addrinfo_list_t));
+ if (ai_list == NULL) {
+ gf_msg(this->name, GF_LOG_ERROR, ENOMEM, GD_MSG_NO_MEMORY,
+ "failed to allocate memory");
+ goto out;
+ }
ai_list->info = NULL;
CDS_INIT_LIST_HEAD(&ai_list->list);
@@ -14823,25 +14829,29 @@ found_bad_brick_order:
ret = -1;
out:
- ai_list_tmp2 = NULL;
GF_FREE(brick_list_ptr);
- cds_list_for_each_entry(pre_list_tmp1, &pre_list->list, list)
- {
- if (pre_list_tmp1->info)
- freeaddrinfo(pre_list_tmp1->info);
- free(ai_list_tmp2);
- ai_list_tmp2 = pre_list_tmp1;
+ if (pre_list != NULL) {
+ cds_list_for_each_entry_safe(pre_list_tmp1, pre_list_tmp2,
+ &pre_list->list, list)
+ {
+ if (pre_list_tmp1->info)
+ freeaddrinfo(pre_list_tmp1->info);
+ FREE(pre_list_tmp1);
+ }
+ FREE(pre_list);
}
- free(pre_list);
- cds_list_for_each_entry(ai_list_tmp1, &ai_list->list, list)
- {
- if (ai_list_tmp1->info)
- freeaddrinfo(ai_list_tmp1->info);
- free(ai_list_tmp2);
- ai_list_tmp2 = ai_list_tmp1;
+
+ if (ai_list != NULL) {
+ cds_list_for_each_entry_safe(ai_list_tmp1, ai_list_tmp2, &ai_list->list,
+ list)
+ {
+ if (ai_list_tmp1->info)
+ freeaddrinfo(ai_list_tmp1->info);
+ FREE(ai_list_tmp1);
+ }
+ FREE(ai_list);
}
- free(ai_list);
- free(ai_list_tmp2);
+
gf_msg_debug("glusterd", 0, "Returning %d", ret);
return ret;
}