Commit a173e07e authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Prevent failf() from using the va_list variable more than once.

See bug report #1088962 and  Single Unix Specification:
http://www.opengroup.org/onlinepubs/007908799/xsh/vfprintf.html
parent 3de85777
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -155,16 +155,16 @@ void Curl_failf(struct SessionHandle *data, const char *fmt, ...)
{
  va_list ap;
  va_start(ap, fmt);
  size_t len;

  vsnprintf(data->state.buffer, BUFSIZE, fmt, ap);

  if(data->set.errorbuffer && !data->state.errorbuf) {
    vsnprintf(data->set.errorbuffer, CURL_ERROR_SIZE, fmt, ap);
    snprintf(data->set.errorbuffer, CURL_ERROR_SIZE, "%s", data->state.buffer);
    data->state.errorbuf = TRUE; /* wrote error string */
  }
  if(data->set.verbose) {
      size_t len;

      vsnprintf(data->state.buffer, BUFSIZE, fmt, ap);
    len = strlen(data->state.buffer);

    if(len < BUFSIZE - 1) {
      data->state.buffer[len] = '\n';
      data->state.buffer[++len] = '\0';