projects
/
linux-2.6-block.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
[linux-2.6-block.git]
/
lib
/
kasprintf.c
diff --git
a/lib/kasprintf.c
b/lib/kasprintf.c
index f194e6e593e19db22ad6b7e50aeee0e7c46eafa6..7f6c506a494226479af1152f13f99f1870f554d1 100644
(file)
--- a/
lib/kasprintf.c
+++ b/
lib/kasprintf.c
@@
-13,19
+13,21
@@
/* Simplified asprintf. */
char *kvasprintf(gfp_t gfp, const char *fmt, va_list ap)
{
/* 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);
char *p;
va_list aq;
va_copy(aq, ap);
-
len
= vsnprintf(NULL, 0, fmt, aq);
+
first
= vsnprintf(NULL, 0, fmt, aq);
va_end(aq);
va_end(aq);
- p = kmalloc_track_caller(
len
+1, gfp);
+ p = kmalloc_track_caller(
first
+1, gfp);
if (!p)
return NULL;
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;
}
return p;
}