diff options
| author | Richard Nyberg <rnyberg@murmeldjur.se> | 2006-11-08 14:29:10 +0000 |
|---|---|---|
| committer | Richard Nyberg <rnyberg@murmeldjur.se> | 2006-11-08 14:29:10 +0000 |
| commit | 68c4f99b29a758d29ec301e2de8236a88a55c6df (patch) | |
| tree | 69983511e1aaefc5363140976483cb10bd75f960 /libevent/buffer.c | |
| parent | 6fbf0b520fac492f9fd951100ace5664c5f1de94 (diff) | |
| download | btpd-68c4f99b29a758d29ec301e2de8236a88a55c6df.tar.gz btpd-68c4f99b29a758d29ec301e2de8236a88a55c6df.zip | |
Fix evbuffer_add_vprintf. Patch taken from <http://monkeymail.org/archives/libevent-users/2006-October/000299.html>.
Diffstat (limited to 'libevent/buffer.c')
| -rw-r--r-- | libevent/buffer.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libevent/buffer.c b/libevent/buffer.c index e09cc3d..1585389 100644 --- a/libevent/buffer.c +++ b/libevent/buffer.c @@ -132,17 +132,20 @@ evbuffer_add_vprintf(struct evbuffer *buf, const char *fmt, va_list ap) size_t space; size_t oldoff = buf->off; int sz; + va_list aq; for (;;) { buffer = buf->buffer + buf->off; space = buf->totallen - buf->misalign - buf->off; + va_copy(aq, ap); #ifdef WIN32 - sz = vsnprintf(buffer, space - 1, fmt, ap); + sz = vsnprintf(buffer, space - 1, fmt, aq); buffer[space - 1] = '\0'; #else - sz = vsnprintf(buffer, space, fmt, ap); + sz = vsnprintf(buffer, space, fmt, aq); #endif + va_end(aq); if (sz == -1) return (-1); if (sz < space) { |