diff options
Diffstat (limited to 'usr.sbin/syslogd/ringbuf.c')
| -rw-r--r-- | usr.sbin/syslogd/ringbuf.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/usr.sbin/syslogd/ringbuf.c b/usr.sbin/syslogd/ringbuf.c index 80c91e7df56..80f06fe603d 100644 --- a/usr.sbin/syslogd/ringbuf.c +++ b/usr.sbin/syslogd/ringbuf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ringbuf.c,v 1.6 2005/09/16 04:00:50 djm Exp $ */ +/* $OpenBSD: ringbuf.c,v 1.7 2005/09/21 23:25:32 djm Exp $ */ /* * Copyright (c) 2004 Damien Miller @@ -136,14 +136,14 @@ ringbuf_append_line(struct ringbuf *rb, char *line) ssize_t ringbuf_to_string(char *buf, size_t len, struct ringbuf *rb) { - ssize_t copy_len, n; + size_t copy_len, n; - if (buf == NULL || rb == NULL) + if (buf == NULL || rb == NULL || len == 0) return (-1); copy_len = MIN(len - 1, ringbuf_used(rb)); - if (copy_len <= 0) + if (copy_len == 0) return (copy_len); if (rb->start < rb->end) @@ -152,7 +152,7 @@ ringbuf_to_string(char *buf, size_t len, struct ringbuf *rb) /* If the buffer is wrapped, copy each hunk separately */ n = rb->len - rb->start; memcpy(buf, rb->buf + rb->start, MIN(n, copy_len)); - if (copy_len - n > 0) + if (copy_len > n) memcpy(buf + n, rb->buf, MIN(rb->end, copy_len - n)); } buf[copy_len] = '\0'; |
