From 0f67cd6d58ec433481f6c477855746efabfe5fe5 Mon Sep 17 00:00:00 2001 From: nicm <> Date: Sun, 19 Jul 2015 07:18:59 +0000 Subject: [PATCH] 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 --- src/lib/libutil/imsg.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/libutil/imsg.c b/src/lib/libutil/imsg.c index 8fb34927..5b1a7c13 100644 --- a/src/lib/libutil/imsg.c +++ b/src/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 @@ -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)