diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sendf.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/sendf.c b/lib/sendf.c index d3c10b369..77eacdf5f 100644 --- a/lib/sendf.c +++ b/lib/sendf.c @@ -237,7 +237,18 @@ void Curl_infof(struct Curl_easy *data, const char *fmt, ...) size_t len; char print_buffer[2048 + 1]; va_start(ap, fmt); - vsnprintf(print_buffer, sizeof(print_buffer), fmt, ap); + len = vsnprintf(print_buffer, sizeof(print_buffer), fmt, ap); + /* + * Indicate truncation of the input by replacing the last 3 characters + * with "...", and transfer the newline over in case the format had one. + */ + if(len >= sizeof(print_buffer)) { + len = strlen(fmt); + if(fmt[--len] == '\n') + snprintf(print_buffer + (sizeof(print_buffer) - 5), 5, "...\n"); + else + snprintf(print_buffer + (sizeof(print_buffer) - 4), 4, "..."); + } va_end(ap); len = strlen(print_buffer); Curl_debug(data, CURLINFO_TEXT, print_buffer, len); |