aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kasprintf.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kasprintf.c')
-rw-r--r--lib/kasprintf.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/kasprintf.c b/lib/kasprintf.c
index f194e6e593e1..7f6c506a4942 100644
--- a/lib/kasprintf.c
+++ b/lib/kasprintf.c
@@ -13,19 +13,21 @@
13/* Simplified asprintf. */ 13/* Simplified asprintf. */
14char *kvasprintf(gfp_t gfp, const char *fmt, va_list ap) 14char *kvasprintf(gfp_t gfp, const char *fmt, va_list ap)
15{ 15{
16 unsigned int len; 16 unsigned int first, second;
17 char *p; 17 char *p;
18 va_list aq; 18 va_list aq;
19 19
20 va_copy(aq, ap); 20 va_copy(aq, ap);
21 len = vsnprintf(NULL, 0, fmt, aq); 21 first = vsnprintf(NULL, 0, fmt, aq);
22 va_end(aq); 22 va_end(aq);
23 23
24 p = kmalloc_track_caller(len+1, gfp); 24 p = kmalloc_track_caller(first+1, gfp);
25 if (!p) 25 if (!p)
26 return NULL; 26 return NULL;
27 27
28 vsnprintf(p, len+1, fmt, ap); 28 second = vsnprintf(p, first+1, fmt, ap);
29 WARN(first != second, "different return values (%u and %u) from vsnprintf(\"%s\", ...)",
30 first, second, fmt);
29 31
30 return p; 32 return p;
31} 33}