crypto/bio/bio_print.c: handle negative width argument

Per [1]:

    A negative field width is taken as a '-' flag followed by a positive field
    width.

So, printf("%-*d", -12, 34) should lead to a 123-wide left-aligned output,
"34          ".

[1] https://pubs.opengroup.org/onlinepubs/9799919799//functions/printf.html

Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28177)
This commit is contained in:
Eugene Syromiatnikov 2025-08-05 14:53:28 +02:00 committed by Neil Horman
parent 96e021dfff
commit 7eb18e768d
1 changed files with 4 additions and 0 deletions

View File

@ -155,6 +155,10 @@ _dopr(char **sbuffer,
ch = *format++;
} else if (ch == '*') {
min = va_arg(args, int);
if (min < 0) {
flags |= DP_F_MINUS;
min = -min;
}
ch = *format++;
state = DP_S_DOT;
} else