Merge remote-tracking branch 'ovl/misc' into work.misc
[cascardo/linux.git] / lib / kasprintf.c
index f194e6e..7f6c506 100644 (file)
 /* Simplified asprintf. */
 char *kvasprintf(gfp_t gfp, const char *fmt, va_list ap)
 {
-       unsigned int len;
+       unsigned int first, second;
        char *p;
        va_list aq;
 
        va_copy(aq, ap);
-       len = vsnprintf(NULL, 0, fmt, aq);
+       first = vsnprintf(NULL, 0, fmt, aq);
        va_end(aq);
 
-       p = kmalloc_track_caller(len+1, gfp);
+       p = kmalloc_track_caller(first+1, gfp);
        if (!p)
                return NULL;
 
-       vsnprintf(p, len+1, fmt, ap);
+       second = vsnprintf(p, first+1, fmt, ap);
+       WARN(first != second, "different return values (%u and %u) from vsnprintf(\"%s\", ...)",
+            first, second, fmt);
 
        return p;
 }