Browse Source

revert this change by eric@:

Make the imsg protocol network-safe.
it might be network safe, but half the imsg based daemons on my firewalls
dont run anymore.
OPENBSD_4_6
dlg 15 years ago
parent
commit
eb4aea697b
1 changed files with 4 additions and 11 deletions
  1. +4
    -11
      src/usr.sbin/ntpd/imsg.c

+ 4
- 11
src/usr.sbin/ntpd/imsg.c View File

@ -1,4 +1,4 @@
/* $OpenBSD: imsg.c,v 1.16 2009/06/07 05:56:25 eric Exp $ */
/* $OpenBSD: imsg.c,v 1.17 2009/06/08 08:30:06 dlg Exp $ */
/* /*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@ -107,12 +107,8 @@ imsg_get(struct imsgbuf *ibuf, struct imsg *imsg)
errno = ERANGE; errno = ERANGE;
return (-1); return (-1);
} }
if ((imsg->hdr.len = ntohs(imsg->hdr.len)) > av)
if (imsg->hdr.len > av)
return (0); return (0);
imsg->hdr.type = ntohl(imsg->hdr.type);
imsg->hdr.flags = ntohs(imsg->hdr.flags);
imsg->hdr.peerid = ntohl(imsg->hdr.peerid);
imsg->hdr.pid = ntohl(imsg->hdr.pid);
datalen = imsg->hdr.len - IMSG_HEADER_SIZE; datalen = imsg->hdr.len - IMSG_HEADER_SIZE;
ibuf->r.rptr = ibuf->r.buf + IMSG_HEADER_SIZE; ibuf->r.rptr = ibuf->r.buf + IMSG_HEADER_SIZE;
if ((imsg->data = malloc(datalen)) == NULL) if ((imsg->data = malloc(datalen)) == NULL)
@ -228,11 +224,8 @@ imsg_close(struct imsgbuf *ibuf, struct buf *msg)
if (msg->fd != -1) if (msg->fd != -1)
hdr->flags |= IMSGF_HASFD; hdr->flags |= IMSGF_HASFD;
hdr->type = htonl(hdr->type);
hdr->len = htons(msg->wpos);
hdr->flags = htons(hdr->flags);
hdr->peerid = htonl(hdr->peerid);
hdr->pid = htonl(hdr->pid);
hdr->len = (u_int16_t)msg->wpos;
buf_close(&ibuf->w, msg); buf_close(&ibuf->w, msg);
} }


Loading…
Cancel
Save