diff options
| author | Peter Wemm <peter@FreeBSD.org> | 2003-05-25 19:03:08 +0000 |
|---|---|---|
| committer | Peter Wemm <peter@FreeBSD.org> | 2003-05-25 19:03:08 +0000 |
| commit | a9a0bbad19f73db3d2cb9b10ba5fce3bb3fbcdec (patch) | |
| tree | 3b4a1e1ad4c12a1a6e7c82cd29ea612f2c6723b7 /sys/kern/subr_sbuf.c | |
| parent | 0003d1b74eae06004bae525f65e1ed11f36f00c0 (diff) | |
Notes
Diffstat (limited to 'sys/kern/subr_sbuf.c')
| -rw-r--r-- | sys/kern/subr_sbuf.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/kern/subr_sbuf.c b/sys/kern/subr_sbuf.c index 9e63e8e7aaf5..80947a454bc0 100644 --- a/sys/kern/subr_sbuf.c +++ b/sys/kern/subr_sbuf.c @@ -399,6 +399,7 @@ sbuf_cpy(struct sbuf *s, const char *str) int sbuf_vprintf(struct sbuf *s, const char *fmt, va_list ap) { + va_list ap_copy; int len; assert_sbuf_integrity(s); @@ -411,8 +412,10 @@ sbuf_vprintf(struct sbuf *s, const char *fmt, va_list ap) return (-1); do { + va_copy(ap_copy, ap); len = vsnprintf(&s->s_buf[s->s_len], SBUF_FREESPACE(s) + 1, - fmt, ap); + fmt, ap_copy); + va_end(ap_copy); } while (len > SBUF_FREESPACE(s) && sbuf_extend(s, len - SBUF_FREESPACE(s)) == 0); |
