repo.or.cz
/
musl.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
preserve errno across free
[musl.git]
/
src
/
stdio
/
vasprintf.c
blob
08251bc20ecd240a53335357341f89000ce5efa6
1
#define _GNU_SOURCE
2
#include <stdio.h>
3
#include <stdarg.h>
4
#include <stdlib.h>
5
6
int
vasprintf
(
char
**
s
,
const char
*
fmt
,
va_list
ap
)
7
{
8
va_list
ap2
;
9
va_copy
(
ap2
,
ap
);
10
int
l
=
vsnprintf
(
0
,
0
,
fmt
,
ap2
);
11
va_end
(
ap2
);
12
13
if
(
l
<
0
|| !(*
s
=
malloc
(
l
+
1U
)))
return
-
1
;
14
return
vsnprintf
(*
s
,
l
+
1U
,
fmt
,
ap
);
15
}