From badbcc663192d9599f8435c1392fae09924de0c7 Mon Sep 17 00:00:00 2001 From: Eugene Syromiatnikov Date: Tue, 5 Aug 2025 15:19:12 +0200 Subject: [PATCH] crypto/bio/bio_print.c: fix space padding calculation MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Sign, prefix, and zero padding should count towards precision. Signed-off-by: Eugene Syromiatnikov Reviewed-by: Saša Nedvědický Reviewed-by: Neil Horman (Merged from https://github.com/openssl/openssl/pull/28177) --- crypto/bio/bio_print.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crypto/bio/bio_print.c b/crypto/bio/bio_print.c index 6f67a870b65..d08b37370fa 100644 --- a/crypto/bio/bio_print.c +++ b/crypto/bio/bio_print.c @@ -500,16 +500,16 @@ fmtint(char **sbuffer, * if necessary, to force the first digit of the result to be a zero */ zpadlen = max - place - (prefix == oct_prefix); - spadlen = - min - OSSL_MAX(max, place) - (signvalue ? 1 : 0) - (int)strlen(prefix); if (zpadlen < 0) zpadlen = 0; + spadlen = + min - OSSL_MAX(max, place + zpadlen + (signvalue ? 1 : 0) + (int)strlen(prefix)); if (spadlen < 0) spadlen = 0; if (flags & DP_F_MINUS) { spadlen = -spadlen; } else if (flags & DP_F_ZERO) { - zpadlen = OSSL_MAX(zpadlen, spadlen); + zpadlen = zpadlen + spadlen; spadlen = 0; } -- 2.47.3