diff options
| author | Pierre Ossman <ossman@cendio.se> | 2006-06-13 15:54:11 +0000 | 
|---|---|---|
| committer | Pierre Ossman <ossman@cendio.se> | 2006-06-13 15:54:11 +0000 | 
| commit | dd0f80e3e28f2c4a0195d763f861594a9265ef1f (patch) | |
| tree | 517cf1474dc1ca552e134b64f54195caeec632b7 | |
| parent | 0f13c43797dd291b02a6b0fa1c9933a35da95c01 (diff) | |
Make a copy of the va_list as vsnprintf() is free to change it.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1017 fefdeb5f-60dc-0310-8127-8f9354f1896f
| -rw-r--r-- | src/polypcore/core-util.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/src/polypcore/core-util.c b/src/polypcore/core-util.c index 6cf281c5..dfa41f57 100644 --- a/src/polypcore/core-util.c +++ b/src/polypcore/core-util.c @@ -366,8 +366,14 @@ char *pa_vsprintf_malloc(const char *format, va_list ap) {      for(;;) {          int r; +        va_list aq; + +        va_copy(aq, ap); +          c = pa_xrealloc(c, size); -        r = vsnprintf(c, size, format, ap); +        r = vsnprintf(c, size, format, aq); + +        va_end(aq);          if (r > -1 && r < size)              return c;  | 
