Skip to content

Commit

Permalink
lib/vsprintf.c: fix vscnprintf() if @SiZe is == 0
Browse files Browse the repository at this point in the history
vscnprintf() should return 0 if @SiZe is == 0.  Update the comment for it,
as @SiZe is unsigned.

This change based on the code of commit
b903c0b ("lib: fix scnprintf() if @SiZe
is == 0") moves the real fix into vscnprinf() from scnprintf() and makes
scnprintf() call vscnprintf(), thus avoid code duplication.

Signed-off-by: Anton Arapov <[email protected]>
Acked-by: Changli Gao <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Anton Arapov authored and torvalds committed Jan 13, 2011
1 parent a3f938b commit b921c69
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions lib/vsprintf.c
Original file line number Diff line number Diff line change
Expand Up @@ -1473,7 +1473,7 @@ EXPORT_SYMBOL(vsnprintf);
* @args: Arguments for the format string
*
* The return value is the number of characters which have been written into
* the @buf not including the trailing '\0'. If @size is <= 0 the function
* the @buf not including the trailing '\0'. If @size is == 0 the function
* returns 0.
*
* Call this function if you are already dealing with a va_list.
Expand All @@ -1487,7 +1487,11 @@ int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)

i = vsnprintf(buf, size, fmt, args);

return (i >= size) ? (size - 1) : i;
if (likely(i < size))
return i;
if (size != 0)
return size - 1;
return 0;
}
EXPORT_SYMBOL(vscnprintf);

Expand Down Expand Up @@ -1535,14 +1539,10 @@ int scnprintf(char *buf, size_t size, const char *fmt, ...)
int i;

va_start(args, fmt);
i = vsnprintf(buf, size, fmt, args);
i = vscnprintf(buf, size, fmt, args);
va_end(args);

if (likely(i < size))
return i;
if (size != 0)
return size - 1;
return 0;
return i;
}
EXPORT_SYMBOL(scnprintf);

Expand Down

0 comments on commit b921c69

Please sign in to comment.