1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
--- misc/liblangtag-0.4.0/liblangtag/lt-utils.c 2012-12-01 10:46:26.000000000 +0100
+++ misc/build/liblangtag-0.4.0/liblangtag/lt-utils.c 2012-12-01 13:17:41.421568551 +0100
@@ -18,6 +18,7 @@
#include <stdio.h>
#include <string.h>
#include <memory.h>
+#include <stdlib.h>
#include "lt-messages.h"
#include "lt-utils.h"
@@ -121,7 +121,7 @@ char *
lt_strdup_vprintf(const char *format,
va_list args)
{
- char *retval, c;
+ char *retval, tmpbuf[ 16384 ];
va_list ap;
int size;
@@ -133,7 +133,9 @@ lt_strdup_vprintf(const char *format,
va_copy(ap, args);
#endif
- size = vsnprintf(&c, 1, format, ap) + 1;
+ size = vsnprintf(tmpbuf, sizeof(tmpbuf), format, ap) + 1;
+ if( size == 0 ) // -1 + 1
+ abort();
va_end(ap);
|