aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2011-09-13 10:42:07 +0100
committerJan Beulich <jbeulich@suse.com>2011-09-13 10:42:07 +0100
commit5845866a8cd7f81253c07f93abe52704905920bb (patch)
tree4189284171621b9c9847cd7cecea7e3a928c3069
parentefc3f8041aa441a01fb93cd32029886c625ba14e (diff)
downloadxen-5845866a8cd7f81253c07f93abe52704905920bb.tar.gz
xen-5845866a8cd7f81253c07f93abe52704905920bb.tar.bz2
xen-5845866a8cd7f81253c07f93abe52704905920bb.zip
bitmap_scnlistprintf() should always zero-terminate its output buffer
... as long as it has non-zero size. So far this would not happen if the passed in CPU mask was empty. Also fix the comment describing the return value to actually match reality. Signed-off-by: Jan Beulich <jbeulich@suse.com> xen-unstable changeset: 23820:ba75234a6f56 xen-unstable date: Wed Sep 07 10:36:55 2011 +0100
-rw-r--r--xen/common/bitmap.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/xen/common/bitmap.c b/xen/common/bitmap.c
index 363572bedb..a34f519359 100644
--- a/xen/common/bitmap.c
+++ b/xen/common/bitmap.c
@@ -363,9 +363,8 @@ static inline int bscnl_emit(char *buf, int buflen, int rbot, int rtop, int len)
* the range. Output format is compatible with the format
* accepted as input by bitmap_parselist().
*
- * The return value is the number of characters which would be
- * generated for the given input, excluding the trailing '\0', as
- * per ISO C99.
+ * The return value is the number of characters which were output,
+ * excluding the trailing '\0'.
*/
int bitmap_scnlistprintf(char *buf, unsigned int buflen,
const unsigned long *maskp, int nmaskbits)
@@ -383,6 +382,8 @@ int bitmap_scnlistprintf(char *buf, unsigned int buflen,
rbot = cur;
}
}
+ if (!len && buflen)
+ *buf = 0;
return len;
}
EXPORT_SYMBOL(bitmap_scnlistprintf);