projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
UNIX signal numbers start at 1.
[tinc]
/
lib
/
dropin.c
diff --git
a/lib/dropin.c
b/lib/dropin.c
index
a3c28b0
..
23d2b13
100644
(file)
--- a/
lib/dropin.c
+++ b/
lib/dropin.c
@@
-125,27
+125,36
@@
char *get_current_dir_name(void)
#endif
#ifndef HAVE_ASPRINTF
#endif
#ifndef HAVE_ASPRINTF
-int asprintf(char **buf, const char *fmt, ...)
+int asprintf(char **buf, const char *fmt, ...) {
+ int result;
+ va_list ap;
+ va_start(ap, fmt);
+ result = vasprintf(buf, fmt, ap);
+ va_end(ap);
+ return result;
+}
+
+int vasprintf(char **buf, const char *fmt, va_list ap) {
{
int status;
{
int status;
- va_list a
p
;
+ va_list a
q
;
int len;
len = 4096;
*buf = xmalloc(len);
int len;
len = 4096;
*buf = xmalloc(len);
- va_
start(ap, fmt
);
- status = vsnprintf(*buf, len, fmt, a
p
);
- va_end(a
p
);
+ va_
copy(aq, ap
);
+ status = vsnprintf(*buf, len, fmt, a
q
);
+ va_end(a
q
);
if(status >= 0)
*buf = xrealloc(*buf, status + 1);
if(status > len - 1) {
len = status;
if(status >= 0)
*buf = xrealloc(*buf, status + 1);
if(status > len - 1) {
len = status;
- va_
start(ap, fmt
);
- status = vsnprintf(*buf, len, fmt, a
p
);
- va_end(a
p
);
+ va_
copy(aq, ap
);
+ status = vsnprintf(*buf, len, fmt, a
q
);
+ va_end(a
q
);
}
return status;
}
return status;