diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2010-04-05 22:26:14 +0200 |
---|---|---|
committer | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2010-04-20 19:14:18 +0200 |
commit | b4724180a64b2c0474692e32c9ac96261a16238b (patch) | |
tree | 4a99838c10a3ca50904c312f920c0afcf32e9f18 | |
parent | f2ea7a26380fdda74714a2bbb30fe6d03e24667d (diff) | |
download | busybox-w32-b4724180a64b2c0474692e32c9ac96261a16238b.tar.gz busybox-w32-b4724180a64b2c0474692e32c9ac96261a16238b.tar.bz2 busybox-w32-b4724180a64b2c0474692e32c9ac96261a16238b.zip |
win32: xasprintf fixup
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
-rw-r--r-- | libbb/xfuncs_printf.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/libbb/xfuncs_printf.c b/libbb/xfuncs_printf.c index 7207ec58a..f8b1b81cd 100644 --- a/libbb/xfuncs_printf.c +++ b/libbb/xfuncs_printf.c | |||
@@ -287,8 +287,22 @@ char* FAST_FUNC xasprintf(const char *format, ...) | |||
287 | char *string_ptr; | 287 | char *string_ptr; |
288 | 288 | ||
289 | va_start(p, format); | 289 | va_start(p, format); |
290 | #if ENABLE_PLATFORM_MINGW32 | ||
291 | string_ptr = xmalloc(1024); | ||
292 | r = vsnprintf(string_ptr, 1024, format, p); | ||
293 | va_end(p); | ||
294 | if (r > 0) { | ||
295 | free(string_ptr); | ||
296 | r += 2; | ||
297 | string_ptr = xmalloc(r); | ||
298 | va_start(p, format); | ||
299 | r = vsnprintf(string_ptr, r, format, p); | ||
300 | va_end(p); | ||
301 | } | ||
302 | #else | ||
290 | r = vasprintf(&string_ptr, format, p); | 303 | r = vasprintf(&string_ptr, format, p); |
291 | va_end(p); | 304 | va_end(p); |
305 | #endif | ||
292 | 306 | ||
293 | if (r < 0) | 307 | if (r < 0) |
294 | bb_error_msg_and_die(bb_msg_memory_exhausted); | 308 | bb_error_msg_and_die(bb_msg_memory_exhausted); |