diff options
Diffstat (limited to 'src/daemon/https/tls/gnutls_str.c')
-rw-r--r-- | src/daemon/https/tls/gnutls_str.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/daemon/https/tls/gnutls_str.c b/src/daemon/https/tls/gnutls_str.c index 22f949d6..d5e95366 100644 --- a/src/daemon/https/tls/gnutls_str.c +++ b/src/daemon/https/tls/gnutls_str.c | |||
@@ -236,12 +236,18 @@ mhd_gtls_string_append_printf (mhd_gtls_string * dest, const char *fmt, ...) | |||
236 | char *str; | 236 | char *str; |
237 | 237 | ||
238 | va_start (args, fmt); | 238 | va_start (args, fmt); |
239 | len = vasprintf (&str, fmt, args); | 239 | len = vsnprintf (NULL, 0, fmt, args); |
240 | va_end (args); | 240 | va_end (args); |
241 | 241 | if (len < 0) | |
242 | if (len < 0 || !str) | 242 | return -1; |
243 | str = malloc(len + 1); | ||
244 | if (! str) | ||
243 | return -1; | 245 | return -1; |
244 | 246 | ||
247 | va_start (args, fmt); | ||
248 | len = vsprintf (str, fmt, args); | ||
249 | va_end (args); | ||
250 | |||
245 | len = mhd_gtls_string_append_str (dest, str); | 251 | len = mhd_gtls_string_append_str (dest, str); |
246 | 252 | ||
247 | free (str); | 253 | free (str); |