[PATCH] Implement kasprintf
[safe/jmp/linux-2.6] / lib / vsprintf.c
index f595947..797428a 100644 (file)
@@ -849,3 +849,26 @@ int sscanf(const char * buf, const char * fmt, ...)
 }
 
 EXPORT_SYMBOL(sscanf);
+
+
+/* Simplified asprintf. */
+char *kasprintf(gfp_t gfp, const char *fmt, ...)
+{
+       va_list ap;
+       unsigned int len;
+       char *p;
+
+       va_start(ap, fmt);
+       len = vsnprintf(NULL, 0, fmt, ap);
+       va_end(ap);
+
+       p = kmalloc(len+1, gfp);
+       if (!p)
+               return NULL;
+       va_start(ap, fmt);
+       vsnprintf(p, len+1, fmt, ap);
+       va_end(ap);
+       return p;
+}
+
+EXPORT_SYMBOL(kasprintf);