summaryrefslogtreecommitdiffstats
path: root/compat
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2015-07-12 19:46:58 +0100
committerNicholas Marriott <nicholas.marriott@gmail.com>2015-07-12 19:46:58 +0100
commit235e0bd65a49b469d661a9831067e3f745fbbaad (patch)
tree8ecc41212fd73d598e126488913c0a3efeb6c9f8 /compat
parent8b8a007e8e1faa6af20acdeac728c4fddfeb2f6b (diff)
Update imsg*.[ch] from OpenBSD, including bzero->memset.
Diffstat (limited to 'compat')
-rw-r--r--compat/imsg-buffer.c11
-rw-r--r--compat/imsg.c17
2 files changed, 14 insertions, 14 deletions
diff --git a/compat/imsg-buffer.c b/compat/imsg-buffer.c
index 6756de0a..241c4f4d 100644
--- a/compat/imsg-buffer.c
+++ b/compat/imsg-buffer.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: imsg-buffer.c,v 1.4 2014/06/30 00:25:17 deraadt Exp $ */
+/* $OpenBSD: imsg-buffer.c,v 1.7 2015/07/12 18:40:49 nicm Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -74,7 +74,7 @@ ibuf_realloc(struct ibuf *buf, size_t len)
/* on static buffers max is eq size and so the following fails */
if (buf->wpos + len > buf->max) {
- errno = ENOMEM;
+ errno = ERANGE;
return (-1);
}
@@ -149,7 +149,7 @@ ibuf_write(struct msgbuf *msgbuf)
unsigned int i = 0;
ssize_t n;
- bzero(&iov, sizeof(iov));
+ memset(&iov, 0, sizeof(iov));
TAILQ_FOREACH(buf, &msgbuf->bufs, entry) {
if (i >= IOV_MAX)
break;
@@ -233,8 +233,9 @@ msgbuf_write(struct msgbuf *msgbuf)
char buf[CMSG_SPACE(sizeof(int))];
} cmsgbuf;
- bzero(&iov, sizeof(iov));
- bzero(&msg, sizeof(msg));
+ memset(&iov, 0, sizeof(iov));
+ memset(&msg, 0, sizeof(msg));
+ memset(&cmsgbuf, 0, sizeof(cmsgbuf));
TAILQ_FOREACH(buf, &msgbuf->bufs, entry) {
if (i >= IOV_MAX)
break;
diff --git a/compat/imsg.c b/compat/imsg.c
index 9db26ad6..982ee069 100644
--- a/compat/imsg.c
+++ b/compat/imsg.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: imsg.c,v 1.6 2014/06/30 00:26:22 deraadt Exp $ */
+/* $OpenBSD: imsg.c,v 1.9 2015/07/12 18:40:49 nicm Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -34,12 +34,10 @@ int imsg_get_fd(struct imsgbuf *);
int available_fds(unsigned int);
-/* TA: 2014-09-08: Note that the original code calls getdtablecount() which is
- * OpenBSD specific. Until such time that it's ported elsewhere from
- * <unistd.h>, I've mimicked what OpenSMTPD are doing, by using available_fds()
- * instead.
+/*
+ * The original code calls getdtablecount() which is OpenBSD specific. Use
+ * available_fds() from OpenSMTPD instead.
*/
-
int
available_fds(unsigned int n)
{
@@ -68,7 +66,7 @@ void
imsg_init(struct imsgbuf *ibuf, int fd)
{
msgbuf_init(&ibuf->w);
- bzero(&ibuf->r, sizeof(ibuf->r));
+ memset(&ibuf->r, 0, sizeof(ibuf->r));
ibuf->fd = fd;
ibuf->w.fd = fd;
ibuf->pid = getpid();
@@ -89,7 +87,8 @@ imsg_read(struct imsgbuf *ibuf)
int fd;
struct imsg_fd *ifd;
- bzero(&msg, sizeof(msg));
+ memset(&msg, 0, sizeof(msg));
+ memset(&cmsgbuf, 0, sizeof(cmsgbuf));
iov.iov_base = ibuf->r.buf + ibuf->r.wpos;
iov.iov_len = sizeof(ibuf->r.buf) - ibuf->r.wpos;
@@ -317,7 +316,7 @@ int
imsg_flush(struct imsgbuf *ibuf)
{
while (ibuf->w.queued)
- if (msgbuf_write(&ibuf->w) < 0)
+ if (msgbuf_write(&ibuf->w) <= 0)
return (-1);
return (0);
}