diff options
Diffstat (limited to 'lib/seq_buf.c')
| -rw-r--r-- | lib/seq_buf.c | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/seq_buf.c b/lib/seq_buf.c index 707453f5d58e..0a68f7aa85d6 100644 --- a/lib/seq_buf.c +++ b/lib/seq_buf.c @@ -229,8 +229,10 @@ int seq_buf_putmem_hex(struct seq_buf *s, const void *mem,  	WARN_ON(s->size == 0); +	BUILD_BUG_ON(MAX_MEMHEX_BYTES * 2 >= HEX_CHARS); +  	while (len) { -		start_len = min(len, HEX_CHARS - 1); +		start_len = min(len, MAX_MEMHEX_BYTES);  #ifdef __BIG_ENDIAN  		for (i = 0, j = 0; i < start_len; i++) {  #else @@ -243,12 +245,14 @@ int seq_buf_putmem_hex(struct seq_buf *s, const void *mem,  			break;  		/* j increments twice per loop */ -		len -= j / 2;  		hex[j++] = ' ';  		seq_buf_putmem(s, hex, j);  		if (seq_buf_has_overflowed(s))  			return -1; + +		len -= start_len; +		data += start_len;  	}  	return 0;  } @@ -285,7 +289,7 @@ int seq_buf_path(struct seq_buf *s, const struct path *path, const char *esc)  }  /** - * seq_buf_to_user - copy the squence buffer to user space + * seq_buf_to_user - copy the sequence buffer to user space   * @s: seq_buf descriptor   * @ubuf: The userspace memory location to copy to   * @cnt: The amount to copy  | 
