[Cluster-devel] [PATCH cluster 5/5] cman: handle malloc failure (i.e., don't deref NULL)
Jim Meyering
jim at meyering.net
Tue Jun 23 11:44:10 UTC 2009
From: Jim Meyering <meyering at redhat.com>
* cman/daemon/commands.c (do_cmd_get_extrainfo):
Handle malloc failure (i.e., don't deref NULL).
(do_cmd_get_all_members): Likewise.
---
cman/daemon/commands.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/cman/daemon/commands.c b/cman/daemon/commands.c
index b343bcb..c360909 100644
--- a/cman/daemon/commands.c
+++ b/cman/daemon/commands.c
@@ -538,6 +538,8 @@ static int do_cmd_get_extrainfo(char *cmdbuf, char **retbuf, int retsize, int *r
sizeof(struct sockaddr_storage) * (MAX_INTERFACES*2))) {
*retbuf = malloc(sizeof(struct cl_extra_info) + sizeof(struct sockaddr_storage) * (MAX_INTERFACES*2));
+ if (*retbuf == NULL)
+ return -ENOMEM;
outbuf = *retbuf + offset;
einfo = (struct cl_extra_info *)outbuf;
@@ -635,6 +637,8 @@ static int do_cmd_get_all_members(char *cmdbuf, char **retbuf, int retsize, int
/* If there is not enough space in the default buffer, allocate some more. */
if ((retsize / sizeof(struct cl_cluster_node)) < total_nodes) {
*retbuf = malloc(sizeof(struct cl_cluster_node) * total_nodes + offset);
+ if (!*retbuf)
+ return -ENOMEM;
outbuf = *retbuf + offset;
log_printf(LOGSYS_LEVEL_DEBUG, "memb: get_all_members: allocated new buffer (retsize=%d)\n", retsize);
}
--
1.6.3.3.420.gd4b46
More information about the Cluster-devel
mailing list