diff options
author | Nicholas Marriott <nicm@cvs.openbsd.org> | 2015-07-19 07:19:00 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@cvs.openbsd.org> | 2015-07-19 07:19:00 +0000 |
commit | 471417df4c639f4d9dd8ec2b7e2ba3f5ba1f1da3 (patch) | |
tree | 7736c207c67904ff03605de0d023330ce3c72cdc /lib/libutil | |
parent | 999ff389b9adc73458bc6556f840cdf8bb3951fe (diff) |
Handle malloc(0) returning NULL (which can happen on some other
platforms) by explicitly making imsg->data = NULL when there is no
data. ok deraadt
Diffstat (limited to 'lib/libutil')
-rw-r--r-- | lib/libutil/imsg.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/libutil/imsg.c b/lib/libutil/imsg.c index 8fb349273f2..5b1a7c13cf4 100644 --- a/lib/libutil/imsg.c +++ b/lib/libutil/imsg.c @@ -1,4 +1,4 @@ -/* $OpenBSD: imsg.c,v 1.9 2015/07/12 18:40:49 nicm Exp $ */ +/* $OpenBSD: imsg.c,v 1.10 2015/07/19 07:18:59 nicm Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> @@ -143,7 +143,9 @@ imsg_get(struct imsgbuf *ibuf, struct imsg *imsg) return (0); datalen = imsg->hdr.len - IMSG_HEADER_SIZE; ibuf->r.rptr = ibuf->r.buf + IMSG_HEADER_SIZE; - if ((imsg->data = malloc(datalen)) == NULL) + if (datalen == 0) + imsg->data = NULL; + else if ((imsg->data = malloc(datalen)) == NULL) return (-1); if (imsg->hdr.flags & IMSGF_HASFD) |