Reimplement BIO_dump_indent() with CBS/CBB and BIO_printf()
authortb <tb@openbsd.org>
Fri, 2 Feb 2024 10:53:48 +0000 (10:53 +0000)
committertb <tb@openbsd.org>
Fri, 2 Feb 2024 10:53:48 +0000 (10:53 +0000)
commit4469aa38023deaccd667524d292df31874567461
tree4893b86b6fef6f6868415f13e009dc8388eaf088
parentcde97ca321a8a7ed6cccdf6a6dc8331ee86c8c98
Reimplement BIO_dump_indent() with CBS/CBB and BIO_printf()

Instead of heaps of unchecked strlcpy/strlcat/snprintf doing hard to follow
gymnastics, use a byte string, a somewhat comprehensible computation of the
number of bytes to dump per output line and write using checked BIO_printf()
directly to the BIO.

Longer strings will still overflow the terminal width of 80 and even longer
strings will still overflow the return value (undefined behavior). I don't
care much about the former but the latter should be fixed in a later pass.

ok beck
lib/libcrypto/bio/b_dump.c