From 0646b3caf2716e2305094132665a7eb02f7c143d Mon Sep 17 00:00:00 2001 From: Tiago Cunha Date: Mon, 12 Apr 2010 21:45:18 +0000 Subject: Sync OpenBSD patchset 680: Remove XXX comment and just close received fd if calloc() fails. If this happens the imsg may no longer be usable as there may be queued messages, but this is a) already the case with the code now, and b) would be the case if recvmsg() fails anyway, so we can document that -1 from imsg_read() invalidates the struct imsgbuf. discussed with and ok eric --- compat/imsg.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'compat/imsg.c') diff --git a/compat/imsg.c b/compat/imsg.c index 2d662d36..d2f55518 100644 --- a/compat/imsg.c +++ b/compat/imsg.c @@ -1,5 +1,5 @@ -/* $Id: imsg.c,v 1.3 2009-08-20 12:54:08 nicm Exp $ */ -/* $OpenBSD: imsg.c,v 1.1 2009/08/11 17:18:35 nicm Exp $ */ +/* $Id: imsg.c,v 1.4 2010-04-12 21:45:18 tcunha Exp $ */ +/* $OpenBSD: imsg.c,v 1.2 2010/04/07 18:09:39 nicm Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer @@ -79,7 +79,7 @@ imsg_read(struct imsgbuf *ibuf) cmsg->cmsg_type == SCM_RIGHTS) { fd = (*(int *)CMSG_DATA(cmsg)); if ((ifd = calloc(1, sizeof(struct imsg_fd))) == NULL) { - /* XXX: this return can leak */ + close(fd); return (-1); } ifd->fd = fd; -- cgit v1.2.3