[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] common/vsprintf: fix return value when formatting symbolic addresses
When the buffer to be formatted to is too small, the function return value is expected to be the number of characters that would be printed (particularly important if that value is then used for allocating a buffer). Hence incrementing the active pointer must always be independent of actually storing a character. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> --- a/xen/common/vsprintf.c +++ b/xen/common/vsprintf.c @@ -294,6 +294,7 @@ static char *pointer(char *str, char *en /* Print '+<offset>/<len>' */ str = number(str, end, sym_offset, 16, -1, -1, SPECIAL|SIGN|PLUS); if ( str <= end ) - *str++ = '/'; + *str = '/'; + ++str; str = number(str, end, sym_size, 16, -1, -1, SPECIAL); } Attachment:
vsprintf-symbol-retval.patch _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |