summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2015-10-19 10:59:09 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2015-10-22 22:28:37 +0200
commitab6d16a8a5214ace81b9af346b9c065ec62fb04b (patch)
tree091a2b293809d240d4898bbb47dd85513f2bf815
parent09a62cca0ce259b207e85683dae47ac145590825 (diff)
downloadlvm2-ab6d16a8a5214ace81b9af346b9c065ec62fb04b.tar.gz
dmeventd: check for malloc return
-rw-r--r--daemons/dmeventd/dmeventd.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/daemons/dmeventd/dmeventd.c b/daemons/dmeventd/dmeventd.c
index 56c504abe..80e6b14fb 100644
--- a/daemons/dmeventd/dmeventd.c
+++ b/daemons/dmeventd/dmeventd.c
@@ -1394,10 +1394,13 @@ static int _client_read(struct dm_event_fifos *fifos,
bytes += ret > 0 ? ret : 0;
if (header && (bytes == 2 * sizeof(uint32_t))) {
msg->cmd = ntohl(header[0]);
- msg->size = ntohl(header[1]);
- buf = msg->data = dm_malloc(msg->size);
- size = msg->size;
+ size = msg->size = ntohl(header[1]);
bytes = 0;
+ if (!size)
+ break; /* No data -> error */
+ buf = msg->data = dm_malloc(msg->size);
+ if (!buf)
+ break; /* No mem -> error */
header = 0;
}
}