diff --git a/lib/hexdump.c b/lib/hexdump.c index 06833d404398..68b30bf6c6a3 100644 --- a/lib/hexdump.c +++ b/lib/hexdump.c @@ -263,12 +263,14 @@ void print_hex_dump(const char *level, const char *prefix_str, int prefix_type, const void *buf, size_t len, bool ascii) { const u8 *ptr = buf; - int i, linelen, remaining = len; + int i, linelen, remaining; unsigned char linebuf[32 * 3 + 2 + 32 + 1]; if (rowsize != 16 && rowsize != 32) rowsize = 16; + len = len > sizeof(linebuf) ? sizeof(linebuf) : len; + remaining = len; for (i = 0; i < len; i += rowsize) { linelen = min(remaining, rowsize); remaining -= rowsize;