Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
[linux-2.6-block.git] / lib / seq_buf.c
index 11f2ae0f90996ac0463ae712785c0135e3576fb8..bd807f545a9d71f4d6c4d87a9348cdba8a9986f1 100644 (file)
@@ -140,13 +140,17 @@ int seq_buf_bprintf(struct seq_buf *s, const char *fmt, const u32 *binary)
  */
 int seq_buf_puts(struct seq_buf *s, const char *str)
 {
-       unsigned int len = strlen(str);
+       size_t len = strlen(str);
 
        WARN_ON(s->size == 0);
 
+       /* Add 1 to len for the trailing null byte which must be there */
+       len += 1;
+
        if (seq_buf_can_fit(s, len)) {
                memcpy(s->buffer + s->len, str, len);
-               s->len += len;
+               /* Don't count the trailing null byte against the capacity */
+               s->len += len - 1;
                return 0;
        }
        seq_buf_set_overflow(s);