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
31
32
|
--- uuid_str.c.orig Tue Mar 29 21:39:51 2005
+++ uuid_str.c Thu Dec 8 18:46:13 2005
@@ -690,8 +690,10 @@
{
char *rv;
int n;
+ va_list ap_tmp;
- n = str_vsnprintf(NULL, 0, fmt, ap);
+ va_copy(ap_tmp, ap);
+ n = str_vsnprintf(NULL, 0, fmt, ap_tmp);
if ((rv = (char *)malloc(n+1)) == NULL)
return NULL;
str_vsnprintf(rv, n+1, fmt, ap);
@@ -720,6 +722,7 @@
{
int rv;
size_t n;
+ va_list ap_tmp;
if (str == NULL)
return -1;
@@ -729,7 +732,8 @@
}
else {
n = strlen(*str);
- rv = str_vsnprintf(NULL, 0, fmt, ap);
+ va_copy(ap_tmp, ap);
+ rv = str_vsnprintf(NULL, 0, fmt, ap_tmp);
if ((*str = (char *)realloc(*str, n+rv+1)) == NULL)
return -1;
str_vsnprintf((*str)+n, rv+1, fmt, ap);
|